2010-07-26 113 views
1

对不起,标题不完全明显,但我不能说得更好。是否有基于冗余而不是永久存储的持久性的数据库?

我们现在使用传统的DB(oracle)作为我们的作业队列,并且这些“作业”被一些节点(机器)所消耗。所以数据库服务器受到这些节点的攻击,我们必须为这个数据库服务器的软件和硬件付出很多。现在

,它发生,我那天是,

1)在系统中已经多个节点
2)“乔布斯”可能不被丢失,因为节点故障,但没有理由他们必须坐在二级存储(没有理由他们不能驻留在内存中,只要它们不会丢失)

鉴于此,不能一个保留在内存中的这些工作,使得确保整个集群中至少有n份此作业副本,从而摆脱数据库服务器?

这样的技术是否可用?

回答

1

你看看Gigaspaces吗?在互联网上,你根本不需要坚持。你只需要知道有足够的副本。如果您的低延迟连接位置不在同一个电源网格上(或者没有电池电量),将事务推送到重复项就足够了。

0

这取决于您期望这些技术为您做多少。有大量基本的内存数据库(SQLite,Redis等),您可以将常规数据库复制技术与多个数据中心中的多个从属设备配合使用,以确保持久性的持久性。

如果你在内存中存储,你可能会用尽空间,并需要水平分区(分片),并且如果你想坚持使用SQL,可能想要查看诸如VoltDB之类的内容。

1

如果您只考虑存储高达几TB的数据,并且您正在寻找冗余性与磁盘可恢复性,那么请查看Oracle Coherence。例如:

  • 弹性。只需添加节点。自动发现。自动负载平衡。没有数据丢失。没有中断。每次添加节点时,都会获得更多的数据容量和更多的吞吐量。
  • 同时使用RAM和闪存。透明。轻松处理每个Coherence节点10甚至100s的千兆字节(例如每个物理服务器最多可达TB或更多)。
  • 自动高可用性(HA)。杀死一个进程,没有数据丢失。杀死一台服务器,没有数据丢失。
  • 数据中心连续可用性(CA)。杀死一个数据中心,没有数据丢失。

为了充分披露,我在甲骨文公司工作。本文所表达的意见和观点属于我自己的观点,并不一定反映我的雇主的意见或看法。