Oracle一致性的客户端和缓存配置

时间:2010-04-15 11:36:39

标签: oracle-coherence

我有特定的场景,我们希望将Coherence用作sitributed缓存。我要在这里描述一下。

  1. 我有20多个独立进程,它们将数据连续放入缓存中。它们的频率各不相同,尽管这不是一个问题。
  2. 并且将继续从这些缓存中读取数据。
  3. 除了连贯性提供的方式之外,我不需要任何底层数据库。数据将写入缓存并从缓存中读取。
  4. 我有4个节点集群(成本约束无论如何),并且相干集群将位于不同的框(infra约束),并且缓存的填充部分和读取部分都将在不同的nmachines上。
  5. 每日缓存的峰值内存大小将最大徘徊在6 GB左右,最小值为2 GB。 缓存只有每日数据,我将有单独的归档过程,以模拟同时保持归档。关键是现在的缓存大小只有这个大小。让我们说我要保持关键等式的日期。
  6. 虽然想探索我是否可以在这4个节点中存储更多内容。现在它的简单序列化,可以探索其他nbinary格式。或者我应该放弃这个大小的缓存吗?
  7. 我的读写操作在当天相当分散。这意味着读取和写入将继续由那些2个阅读客户端和20多个写入客户端发生。它不像其中一个更多。虽然在所有后台进程中都有一个启动批处理过程,但后续推送比缓存更多。但持续推动也推动了大量数据。
  8. 现在我对以上几点的问题(以及因为一些混淆)

    1. 最大的一个是有人告诉我,根据我们购买的节点,我的连接数量有限。所以他说如果是4,你理想情况下应该只有4个连接。那么,开发一个看门人类的应用程序,什么不是。即使我们使用TCP Extend。从我到目前为止的阅读,我不这么认为。是吗?如果它真的不是约束,那么关键是不想这样做。
    2. 换句话说,依赖于集群中节点的代理服务连接是否有限制?

      1. 仅与上述相关。在最大的时候,只要我采用Extend方式,我就会在推送缓存的同时对性能进行一些惩罚,对吗?

      2. 分区缓存/近缓存。因为阅读时间以及最多更新缓存都非常关键。 (我最担心的问题)。

      3. 真的希望看到从POF获得的好处,而不是让我们说序列化/ externalizatble / protobuf。连贯性可以支持开箱即用的protobuf吗? (可能以后)

1 个答案:

答案 0 :(得分:1)

除了正常的网络和硬件资源限制外,Coherence Extend代理可以支持的连接数没有技术限制。如果存在许可限制,您将不得不向Oracle销售人员询问。

使用代理会对性能产生一些影响,因为您要添加额外的网络跃点(客户端代理到群集)。如果使用POF序列化,则代理不必序列化/反序列化值。它可以通过序列化形式传递对象。在大多数应用程序中,使用代理的性能影响很小,因为Coherence针对网络速度进行了高度优化。除非您的客户端是.NET或C ++,否则不需要使用代理,但是将客户端性能与影响缓存隔离有好处。

如果客户端有多个经常检索的项目,那么近缓存将大大提高检索性能,因为它们将在进程中找到。

POF基于更快的序列化/反序列化和更紧凑的存储提供性能改进。最好根据您的实际生产数据尝试测试数据并自己测量差异。 Coherence不支持开箱即用的protobuf。