最初 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 单元部署在集群环境中。目前支持两种集群模式:
- 连续的服务可用性:该集群架构具备故障恢复能力,这确保了即便出现故障也不会中断缓存服务。
- 连续的数据可用性:在集群内部复制数据,这确保了所有的缓存数据总是对用户可用而不会出现中断或延迟,这就避免了数据库与应用负载中可能会出现的访问高峰。
- In addition the Gear6 Web Cache requires no client-side code modification and our cluster architecture enables disruption-free software upgrades.
- 报表与管理:Gear6 WebCache 提供了直观的界面方便你从各个角度观察系统,它能够自动、连续地扫描 DRAM 与 Flash memory 来检查故障。用户可以查看任何层次的缓存以及关于热键、客户端与实例的报告。
如何证明 WebCache 确实能解决性能问题呢?
典型的处理过程包括了现场评估,我们鼓励大家在自己的环境中去评估该解决方案。
请查看 InfoQ 上的 Memcache 标签来深入了解 Memcached。
查看英文原文: Memcached Roundup: Memcached 1.4 Released, Gear6’s WebCache
评论