您的位置: 新闻频道 数据库新闻

原创新闻 基于memcached的分布式数据库缓存系统dbcached

2008-03-24 by 见习编辑 robbin
评论(2) 有1331人浏览 dbcached
dbcached是新浪的开发团队最近新发布的一个基于memcached的开源项目:

http://code.google.com/p/dbcached/

dbcached和新浪另外一个开源项目memcached比较像,都是支持memcached协议,利用memcached进行内存缓存的产品。dbcached的架构图:



根据作者的博客介绍:

  ● 兼容:Memcached 能做的,dbcached 都能做。除此之外,dbcached 还将“Memcached、持久化存储管理器、NMDB 客户端接口”在一个程序中结合起来,对任何原有 Memcached 客户端来讲,dbcached 仍旧是个 Memcached 内存对象缓存系统,但是,它的数据可以持久存储到本机或其它服务器上的 QDBM 或 Berkeley DB 数据库中。

  ● 性能:前端 dbcached 的并发处理能力跟 Memcached 相同;后端 NMDB 跟 Memcached 一样,采用了libevent 进行网络IO处理,拥有自己的内存缓存机制,性能不相上下。

  ● 写入:当“dbcached 的 Memcached 部分”接收到一个 set(add/replace/...) 请求并储存 key-value 数据到内存中后,“dbcached 持久化存储管理器”能够将 key-value 数据通过“NMDB 客户端接口”保存到 QDBM 或 Berkeley DB 数据库中。

  ● 速度:如果加上“-z”参数,采用 UDP 协议“只发送不接收”模式将 set(add/replace/...) 命令写入的数据传递给 NMDB 服务器端,对 Memcache 客户端写速度的影响几乎可以忽略不计。在千兆网卡、同一交换机下服务器之间的 UDP 传输丢包率微乎其微。在命中的情况下,读取数据的速度跟普通的 Memcached 无差别,速度一样快。

  ● 读取:当“dbcached 的 Memcached 部分”接收到一个 get(incr/decr/...) 请求后,如果“dbcached 的 Memcached 部分”查询自身的内存缓存未命中,则“dbcached 持久化存储管理器”会通过“NMDB 客户端接口”从 QDBM 或 Berkeley DB 数据库中取出数据,返回给用户,然后储存到 Memcached 内存中。如果有用户再次请求这个 key,则会直接从 Memcached 内存中返回 Value 值。

  ● 持久:使用 dbcached,不用担心 Memcached 服务器死机、重启而导致数据丢失。

  ● 变更:使用 dbcached,即使因为故障转移,添加、减少 Memcached 服务器节点而破坏了“key 信息”与对应“Memcached 服务器”的映射关系也不怕。

  ● 分布:dbcached 和 NMDB 既可以安装在同一台服务器上,也可以安装在不同的服务器上,多台 dbcached 服务器可以对应一台 NMDB 服务器。

  ● 特长:dbcached 对于“读”大于“写”的应用尤其适用。

那么memcachedb和dbcached有什么区别呢?

Memcachedb 可以保证数据的持久化存储,但目前还没有解决 Memcache 服务器池故障转移导致的数据丢失。而 dbcached 可以,它在未命中时会请求后端的 NMDB 取回数据。在接下来的版本中,dbcached 后端的 NMDB 将设计为两台,进行互备,届时无论前端 dbcached 中的某几台挂了还是后端 NMDB 中的一台挂了,数据都不会丢失。

dbcached 和 Memcachedb 的设计方向不同,dbcached 的设计方向是发挥 Memcached 的内存缓存性能优势,使之成为一个具有“故障转移”、“数据持久化存储”、“多服务器同时读写”的高并发内存缓存系统,它是围绕 Memcached 进行开发的。而 Memcachedb 只使用了 Memcached 的协议和网络层,抛弃了 Memcached 的内存管理部分,使用 Berkeley DB 数据库自身的缓存来实现,是围绕 Berkeley DB 进行开发的,目前支持类似 MySQL 主辅库同步的方式实现读写分离,支持“主服务器可读写、辅助服务器只读”模式。

作者的博客:

http://blog.s135.com/read.php/329.htm

评论 共 2 条 发表评论

gqf2008 2008-03-27 09:41
我觉得已经歪曲了缓存的真正意义
fnet 2008-03-24 17:56
很强大

发表评论

您还没有登录,请登录后发表评论