点对点复制本地数据库

时间:2014-03-13 07:44:34

标签: c replication

我在C中有一个监控流量并记录用户访问的URL的程序。目前,我在哈希表中维护它。我的关键是src-IP地址,结果是一个带有链接URL列表的数据结构。我目前在哈希表中维护50k到100k的记录。当用户注销时,记录可能会被删除。

该程序独立运行在Active-Standby对上。我希望将此数据库复制到另一台计算机,以防我的主计算机崩溃(2个系统充当客户端和服务器)并继续记录与用户关联的内容。

困难的方法是编写用于将此信息发送到对等方以及在对等系统上接收和存储的代码。问题是,它会添加大量代码(和错误!)。要进行数据复制和数据存储,这里有一些先决条件:

  • 我希望在这些计算机之间进行数据记录复制。除非需要,否则我不打算添加另一台机器/集群。
  • 首选库以便快速查询。如果不是我可以IPC的同一台机器上的另一个进程。
  • 应支持添加,更新和删除操作。
  • 在内存数据库中必须。
  • 使用不同的密钥支持多个此类数据库。
  • 已发布/订阅的内容。
  • 如果备份消失并再次返回,则具有重新同步功能。
  • 接口应该是C

我看过的可能选项是zookeeper,redis,memcached,sql-lite,berkeley-db。

  • Zookeeper - 需要奇数个系统才能打破平局。不适合1比1。
  • Redis - 看起来符合我对hiredis for C接口的要求。虽然是单独的过程。
  • Memcached - 我没有任何缓存要求。
  • Sql-lite - 带C接口的嵌入式数据库
  • Berkeley-DB - 更好规模的嵌入式数据库。

所以,Redis,Sql-lite和Berkeley-DB看起来像是我的选择。感谢对DB的任何帮助/想法,我应该根据我的要求进行更多研究。或者,如果有其他数据库我应该研究?如果我的问题非常通用,我道歉。如果问题不属于此,请指出正确的论坛。

0 个答案:

没有答案
相关问题