2013-03-08

SSDB存储服务器的最近进展

Views: 25632 | 6 Comments

春节期间的半个多月, 因为我休假, 所以SSDB没有任何更新. 但是, 我们生产环境中的SSDB实例是一直在跑着的, 数据量每天都增加千万条. 服务器一直运行稳定, 不需要任何维护工作.

上周, 在经历一次机房网络故障之后, SSDB的主从同步出现了问题, 同步复制中断了. 在这次故障中, SSDB Master的心跳机制(noop包)检测到了网络故障, 然后关闭了socket. 但是, 由于之前并没有实现Slave的心跳机制, 所以Slave一直阻塞在了socket的read操作上. 再加上socket没有开启keepalive(即使开启了keepalive, TCP也要过2小时才开始发送keepalive包), Slave就一直阻塞住了.

这个故障说明SSDB的监控工具需要尽早开发了. 当然, 这个问题现在已经解决, 就是实现了Slave的心跳机制. 当Slave在一段时间后没有收到Master的消息, 就会主动断开重连.

目前, SSDB的主从同步机制还需要进一步完善. 虽然Master的同步日志队列已经加大到了1000万条更新操作, 但对于上百G数据的完全同步的成本还是非常大, 所以需要一种diff-patch或者类似rsync的机制.

注: SSDB是一个LevelDB的网络服务器, 用C/C++编写, 支持zset/map/list等数据结构. SSDB是开源的, 项目主页在 https://github.com/ideawu/ssdb.

Related posts:

  1. SSDB 已经迁移到 github
  2. SSDB常规升级-更新到leveldb-1.14.0, Windows安装包
  3. SSDB数据库的大规模应用
  4. SSDB增加hlist, zlist命令
  5. SSDB 增加了 Compaction 限速功能
Posted by ideawu at 2013-03-08 16:10:45 Tags:

6 Responses to "SSDB存储服务器的最近进展"

Leave a Comment