Memcached 综述:Memcached 1.4 发布及 Gear6 WebCache 简介

阅读数:1872 2009 年 7 月 28 日

话题:Ruby语言 & 开发架构

最初Memcached是个用在 LiveJournal.com 上的缓存系统,现在已经被很多站点采用以降低数据库服务器的负载。

近日发布的 1.4 版增加了一些新特性,比如新的 binary protocol。为什么要引入一个新协议呢?Memcached 的开发者Dustin Sallings 解释到

对于协议实现者来说最显而易见的就是协议的解析变得空前的简单。在读取完一个固定大小的消息头之后,底层的 packet 处理器就能计算出该将输入发向何处并将其切分为各个组件(key、value、opaque、cas、extras 等等)。

这对于那些既编写服务端又编写客户端的少数开发者来说很不错,但对于那些仅仅使用 Memcached 的人又如何呢?凭借新协议中增强的语义,生活将变得更加美妙。

这方面的一个榜样就是Trond Norbye 的复制(replication)特性:“你只需在多个服务器上存储几个条目即可”。

由于应用通过标准且开放的协议与 Memcached 进行通信,因此 Memcached 的后端实现可以互换。这其中的一个商业实现就是Gear6 的 WebCache

Gear6 WebCache 是个高级的、兼容于协议的 Memcached 解决方案,它能够使 Web 站点开发者与使用者扩展 Web Services 与应用。

InfoQ 有幸采访到了 Gear6 的产品主管 Bill Takacs 以深入了解 WebCache、其工作方式及提供的好处:

Gear6 对标准 Memcached 进行了很多增强,包括:
  1. 内存使用:移除了 1MB 对象大小的限制,更细粒度的内存分配以及基于代价的逐出算法。
  2. 密度:我们联合使用了 DRAM 与 Flash memory 来降低缓存的代价并提高密度。当前最大的缓存是每 1U 384GB。
  3. 高可用性:我们将两个 1U 单元部署在集群环境中。目前支持两种集群模式:
    1. 连续的服务可用性:该集群架构具备故障恢复能力,这确保了即便出现故障也不会中断缓存服务。
    2. 连续的数据可用性:在集群内部复制数据,这确保了所有的缓存数据总是对用户可用而不会出现中断或延迟,这就避免了数据库与应用负载中可能会出现的访问高峰。
    3. In addition the Gear6 Web Cache requires no client-side code modification and our cluster architecture enables disruption-free software upgrades.
  4. 报表与管理:Gear6 WebCache 提供了直观的界面方便你从各个角度观察系统,它能够自动、连续地扫描 DRAM 与 Flash memory 来检查故障。用户可以查看任何层次的缓存以及关于热键、客户端与实例的报告。

如何证明 WebCache 确实能解决性能问题呢?

典型的处理过程包括了现场评估,我们鼓励大家在自己的环境中去评估该解决方案。

请查看 InfoQ 上的Memcache标签来深入了解 Memcached。

查看英文原文:Memcached Roundup: Memcached 1.4 Released, Gear6's WebCache