我正在寻找一种关于用一些文档存储替代的替换现有数据网格(即Oracle Coherence)的意见,例如NoSQL MongoDB.我想到了最重要的利弊,想出了:
NoSQL的
优点:
>没有额外的数据库
>无需ORM映射
>虽然通过ID查找时可以实现最佳查询效率,但是map / reduce查询可以满足其他查询
缺点:
>在同一集合中更新多个集合甚至多行时,很难实现数据一致性
>响应时间越慢? (我怀疑Coherence的响应时间可能更好)
>读操作可以返回旧数据
数据网格
优点
>使用数据网格似乎更容易保持数据一致,例如数据网格变为SOR(记录系统)
>随着数据网格变为SOR,所有数据应始终在网格中可用
>远程执行器
缺点
>附加数据库意味着额外的开销和系统/应用要求
>随着大量数据和分片的到位,任何类型的查询都会花费大量时间
最佳答案 Couchbase Server是Oracle Coherence的非常好的替代品,特别是对于企业级应用程序. Orbitz是一个很好的例子,其中Coherence的大量节点被Couchbase的70个节点所取代.
您可以在此处阅读有关Coherence替换的更多信息:http://gigaom.com/cloud/balancing-oracle-and-open-source-at-orbitz/
有关Couchbase的Orbitz演示文稿的幻灯片也可在此处获取:http://www.slideshare.net/Couchbase/t1-s6-oww-usescouchbase
优点:
>使用复制和故障转移的节点的高可用性(避免冷缓存方案)
>亚毫秒次延迟(基于memcached的内置对象级缓存)
>高读/写吞吐量(非常低的锁定粒度)(http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-708169.pdf)
>文档/项目级别的强一致性
>每个文件/项目的TTL /到期时间
缺点:
>难以在多文档更新中实现一致性.可以用哨兵来实现. (http://www.amainhobbies.com/FromTheCEO/2012/09/09/invalidating-couchbase-cache-entries-with-sentinels/)