缓存系统Memcached 1.6.0发布,新采用更简洁的元协议

由于Netflix以及其他贡献者的努力,分布式缓存内存系统Memcached发布最新1.6.0版本。现在默认情况,Memcached会编译外部快闪存储系统,官方提到,用户要将该系统用于大规模生产中,仍然需要谨慎小心的使用,但是以一般的情况来说,已经算是稳定的状态,官方会继续改善该系统。虽然在默认情况下会编译该系统,但是用户要使用,还是必需要手动激活,因此除非用户要使用,否则不会影响安装程序,并且也可以在编译时手动禁用。

Memcached 1.6.0引入了新的元协议(Meta Protocol),比起原本的二元协议支持更多功能,原本可以使用文本或二元协议可以完成的工作,都可以使用新的元命令,官方表示,这些指令可以提升缓存系统的性能与正确性。在引入新的元协议同时,官方也宣布正式弃用二元协议,不过,未来还会提供数年的支持以及修复补丁,但是已经不会有新命令和功能更新,官方提醒,所有用户都应使用元协议或是文本协议。

新版本的另一大工程,便是官方重构了网络相关功能的程序代码,现在自动批处理系统调用,当用户在同一个TCP中发送多重Get指令时,Memcached会倾向使用单个系统调用回应。过去,特别是使用二元协议时,针对每个回应,截取所有密钥都是使用独立的系统调用。官方提到,用户可以很明显地感受这项改进带来的性能提升,平均每1.5个系统调用,可减少25%的服务器CPU使用率,并且减少些微的延迟。

而且这项改变,让许多静态分配给已连接客户端的缓冲区,都变成按需使用,而这降低闲置客户端连接所占用的内存容量,从原本最低的4.5 KB降低到约500字节,同时也移除了内联mallocs、reallocs以及frees等,这些会在大量连接数时,造成系统内存破碎的功能。

官方提醒,虽然他们在软件的品质下了很多功夫,但是这个版本比过去版本容量还要大,因此用户在Memcached上创建重要的基础设施,应该尽可能减缓部署的节奏。