1

对不起,标题不是很明显,但我不能更好地用词。

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

现在,前几天我突然想到,

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

鉴于此,难道不能将这些作业保留在内存中,确保整个集群中至少存在 n 个该作业的副本,从而摆脱数据库服务器吗?

有这样的技术吗?

4

3 回答 3

1

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

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

为了全面披露,我在 Oracle 工作。这篇文章中表达的观点和观点是我自己的,并不一定反映我雇主的观点或观点。

于 2013-08-11T22:22:55.920 回答
1

你看过Gigaspaces吗?在互联网规模上,你根本不需要坚持。你只需要知道周围有足够的副本。如果您与不在同一个电网(或有电池)的地方有低延迟连接,那么将您的事务推送到副本就足够了。

于 2011-01-20T22:36:24.787 回答
0

这取决于您期望这些技术为您做多少。有大量的基本内存数据库(SQLite、Redis 等),您可以在多个数据中心中使用具有多个从属的普通数据库复制技术来确保持久性而无需持久性。

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

于 2011-01-20T22:10:16.420 回答