0

我正在为我的 java 项目使用内存数据网格。我知道有一些相关的产品,例如 VMWare GemFire、GigaSpaces XAP、IBM eXtreme Scale 等。有人可以详细说明他们使用这些工具的经验以及它们之间的比较吗?谢谢,亚历克斯

4

2 回答 2

5

(免责声明 - 我为 GigaSpaces 工作)

嗨,亚历克斯

有很多标准可供比较,这实际上取决于您要做什么。内存数据网格有很多用例,例如缓存、OLTP、高吞吐量事件处理等。一般来说,您应该关注的主要标准是:

  • 编程模型:支持Spring等流行的Java框架(XAP和Gemfire原生支持)
  • 查询和索引:如果您想要的不仅仅是简单的键/值数据访问。大多数人需要类似 SQL 的语义,甚至是全文搜索,如果数据网格可以提供开箱即用的功能,那将是一个很大的优势。
  • 能够在网格节点上执行代码,甚至将代码与它们放在一起并处理注入到网格的事件(例如,写入或更新的对象)。这是一个巨大的可扩展性优势,允许您实现非常高效的无共享架构。
  • 语言和 API 支持:大多数数据网格至少支持基于 Java 和 JVM 的语言(例如 Scala),但其中很多还支持其他语言,并允许您从各种编程语言访问相同的数据。例如,XAP 原生支持 Java、.Net 和 C++,以及使用其 REST 和 memcached 接口的其他语言。就 API 而言,一些网格支持多个 API。在 GigaSpaces,我们支持 Map、Spring/POJO、JPA、JDBC 等。
  • 事务:如果您想超越缓存,这也是一个大事务。将内存用作记录系统时,您应该能够回滚状态以防出现错误或错误,否则最终会导致数据损坏。另一个重要的事情是支持哪些类型的事务。许多数据网格只支持“本地”事务。即在单个节点/分区/分片的边界内(出于性能原因,这可能是您在大多数情况下想要做的)。但更高级的网格也支持分布式事务,并且知道如何在需要时从本地无缝升级到分布式。
  • 复制:这里有各种模型(同步、异步、混合),您需要确定其中哪一种最适合您的用例。一些网格还明确支持通过 WAN 进行跨集群复制,如果您正在实施 DR,这很重要。
  • 数据分区和可扩展性:网格如何分区数据(固定/一致哈希),用户对其的控制级别是什么,是否支持将服务器动态添加到网格以增加容量。
  • 管理和监控:最后但并非最不重要的一点 - 开箱即用提供了哪些设施,例如监控和管理挂钩(JMX 或其他管理 API)、用户界面以及与其他 3rd 方系统的集成。

以下链接是一个很好的起点:

  1. http://gojko.net/2009/06/01/oracle-coherence-vs-gigaspaces-xap/。也阅读评论
  2. http://www.neovise.com/neovise-data-caching-performance-technical-white-paper - 我认为 GigaSpaces 和 GemFire 之间最近的比较不言自明:)

HTH,乌里

于 2012-06-28T10:29:57.160 回答
0

Gartner 对内存数据网格市场进行了总结,称为“竞争格局:内存数据网格”。您可以在以下网址查看副本:http ://www.gartner.com/technology/reprints.do?id=1-1HCCIMJ&ct=130718&st=sb

Oracle Coherence(前身为 Tangosol Coherence)长期以来一直是该领域的市场领导者,但它是一种商业产品。正如我最近在别处解释的那样:

优点:

  • 松紧带。只需添加节点。自动发现。自动负载平衡。没有数据丢失。没有中断。每次添加一个节点,您都会获得更多的数据容量和更高的吞吐量。
  • 同时使用 RAM 和闪存。透明地。每个 Coherence 节点轻松处理 10 甚至 100 千兆字节(例如,每个物理服务器高达 1 TB 或更多)。
  • 自动高可用性 (HA)。杀死一个进程,没有数据丢失。杀死一个服务器,没有数据丢失。
  • 数据中心持续可用性 (CA)。杀死一个数据中心,没有数据丢失。
  • 可从任何语言获得的 RESTful API。适用于 C/C++、C#、.NET 和 Java 的本机 API 和客户端库。
  • 除了简单的键值(K/V)缓存外,还支持查询(包括一些SQL)、并行查询、索引(包括自定义索引)、丰富的事件模型(用于像交易所这样的事件驱动系统)、事务(包括MVCC)、标量 (EntryProcessor) 和聚合 (ParallelAwareAggregator) 函数的并行执行、缓存触发器等。
  • 通过通读、预读、直写和后写缓存轻松与数据库集成。当数据库发生更改时,仅自动刷新更改的数据(利用 Oracle GoldenGate 技术)。
  • 相干孵化器:相干孵化器
  • memcache 协议支持:github 上 Oracle Coherence 项目的 Memcached 接口
  • 成千上万的客户,其中一些客户在生产中使用 Coherence 已有十多年了。

缺点:

  • 从 Coherence 12.1.2 开始,缓存本身不是持久的。
  • 它要花钱。

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

于 2013-08-11T22:19:14.360 回答