(免责声明 - 我为GigaSpaces工作)
嗨亚历克斯
有许多标准可供比较,它实际上取决于你要做的事情。在内存数据网格中有很多用例,例如:缓存,OLTP,高吞吐量事件处理等
一般来说,您应该关注的主要标准是:
- 编程模型:支持流行的Java框架,如Spring(XAP和Gemfire本机支持)
- 查询和索引:如果您想要的不仅仅是简单的键/值数据访问。大多数人都需要SQL语义,甚至是全文搜索,如果数据网格可以提供开箱即用的功能,那么这是一个很大的优势。
- 能够在网格节点上执行代码,甚至可以将代码与它们共存,并处理注入网格的事件(例如,写入或更新的对象)。这是一个巨大的可扩展性优势,允许您实现非常高效的无共享体系结构。
- 语言和API支持:大多数数据网格至少支持基于Java和JVM的语言(例如Scala),但是其中许多还支持其他语言,并允许您从各种编程语言访问相同的数据。例如,XAP使用其REST和memcached接口支持本机Java,.Net和C ++以及其他语言。就API而言,一些网格支持多个API。在GigaSpaces,我们支持Map,Spring / POJO,JPA,JDBC等。
- 交易:如果你想要去除缓存以外的任何地方,这也是一个很大的问题。当使用内存作为记录系统时,您应该能够回滚状态,以防出现错误或错误,否则最终会导致数据损坏。另一个重要的事情是支持哪种类型的事务。许多数据网格仅支持“本地”事务。即在单个节点/分区/分片的边界内(出于性能原因,这可能是您在大多数情况下想要做的事情)。但更高级的网格还支持分布式事务,并且知道如何在需要时从本地无缝升级到分布式。
- 复制:这里有各种模型(同步,异步,混合),您需要决定哪一个最适合您的用例。某些网格还明确支持通过WAN进行跨群集复制,这对于实施DR非常重要。
- 数据分区和可扩展性:网格划分数据(固定/一致性散列)如何,用户对其进行控制的程度如何,是否支持向网格动态添加服务器以增加容量。
- 管理和监控:最后但并非最不重要的 - 开箱即用的设施类型,例如监控和管理挂钩(JMX或其他管理API),用户界面以及与其他第三方系统的集成。
以下链接是一个很好的起点:
- http://gojko.net/2009/06/01/oracle-coherence-vs-gigaspaces-xap/。另请阅读评论
- http://www.neovise.com/neovise-data-caching-performance-technical-white-paper - GigaSpaces和GemFire最近的比较,我认为这本身就说明了:)
醇>
HTH,
Uri
Gartner对内存数据网格市场的总结称为“竞争格局:内存数据网格”。您可以在以下位置查看副本:http://www.gartner.com/technology/reprints.do?id=1-1HCCIMJ&ct=130718&st=sb
Oracle Coherence(以前的Tangosol Coherence)长期以来一直是这一领域的市场领导者,但它是一种商业产品。正如我最近在别处解释的那样:
优点:
- 弹性。只需添加节点。自动发现。自动负载平衡。没有数据丢失。没有中断。每次添加节点时,您都可以获得更多的数据容量和更高的吞吐量。
- 同时使用RAM和闪存。透明。每个Coherence节点轻松处理10s甚至100s千兆字节(例如每个物理服务器最多TB或更多)。
- 自动高可用性(HA)。杀死一个进程,没有数据丢失。杀死服务器,没有数据丢失。
- 数据中心连续可用性(CA)。杀死数据中心,不会丢失任何数据。
- 可从任何语言获得的RESTful API。用于C / C ++,C#,.NET和Java的本机API和客户端库。
- 除了简单的键值(K / V)缓存外,还支持查询(包括一些SQL),并行查询,索引(包括自定义索引),丰富的事件模型(用于事件驱动的系统,如交换),事务(包括MVCC),标量(EntryProcessor)和聚合(ParallelAwareAggregator)函数的并行执行,缓存触发器等。
- 通过读取,预读,直写和后写缓存轻松与数据库集成。当数据库发生更改时,自动刷新已更改的数据(利用Oracle GoldenGate技术)。
- Coherence Incubator:Coherence Incubator
- memcache协议支持:github上的Oracle Coherence项目的Memcached接口
- 成千上万的客户,有些人现在使用Coherence生产了十多年。
缺点:
- 从Coherence 12.1.2开始,缓存本身并不持久。
- 花钱。
为了充分披露,我在Oracle工作。本文中表达的观点和观点是我自己的,不一定反映我的雇主的意见或观点。