数据网格 Data Grid和NoSQL相同和区别-异同
Data Grid数据网格是以ehcache的Terracotta兵马俑和Oracle的Coherence以及GigaSpaces为代表的分布式内存存储方案。
NoSQL则是不局限在Java领域,从key-value到neo4j等等,memcached也可以归结为NoSQL范围。
这两种有什么区别和相同点呢?
OCTO talks ! » Data Grid or NoSQL ? same, same but different…一文解惑,两者都是针对大数据BiG Data,可以降低成本,一个集群的几台低成本的服务器成本低于一台高端服务器的4倍。相同点还包括:
基于一个主键Key的分区数据Partitioning the data based on a key. 每台服务器对应一个 key.
将查询路由转发到包含查询结果数据的服务器。避免向所有服务器查询一段特殊数据。路由转发有不同实现,Cassandra实现服务器端的路由;Voldemort是使用客户端路由.
分布式系统都使用复制。
数据网格和NoSQL不同点则是:非常重要,取决于你的架构是面向延迟性latency架构,还是面向吞吐量throughput架构。
大部分系统架构权衡都是在延迟和吞吐量之间比较倾斜,这些倾斜决策将影响到计算机架构底层模块, 现代CPU设计总是倾向于纳秒级别的短暂延迟。
数据网格是采取内存作为主要存储,这样就带来很低的延迟;而NoSQL则是主要为web-scale工业也就是Web网站系统服务的,用户能够感受的延迟不是非常重要,比如几秒延迟,人是感觉不明显的,这时你不必相应快速,而是应该应付越来越多的请求,也就是解决吞吐量。
其他区别是:
NoSQL解决方案已经越来越特定化专业化;而数据网格更加可配置性,通用化。
数据库网格来自于不同的环境,你使用数据网格需要依赖关系数据库RDBMS,需要将数据保持在当地JVM中,还可能需要SQL .NET或ruby等等。
下图是一个比较:
数据网格提供更加复杂的部署选择,可以将数据网格和JVM合并一个JVM或者分开部署,当然,如果分布式部署,数据网格和NoSQL差不多,但是如果和本地JVM合并,对本地业务进行读写也许适合一些业务模型。
数据网格主要缺点是基于Java对象,必须知道Java对象,对象必须能够序列化,而NoSQL则是基于byte数组,对象校验序列化等可以手动管理。
最后作者总结:当进行选择时,首先询问自己:
1.系统负载变化程度和符合其变化所需的弹性。
2.和传统关系数据库RDBMS相比,成本损耗如何,经济低成本还是需要考虑的。
3.要有平台眼光,是否向多租户multi-tenant架构发展。
相关推荐
jaylong 2020-08-19
shining0 2020-08-02
juliashine 2020-07-30
Woohome 2020-06-26
juliashine 2020-06-16
azhou 2020-06-12
huangyx 2020-06-12
Andrea0 2020-06-11
CSDN0BLOG 2020-06-09
muzirigel 2020-06-07
koushr 2020-06-04
大脸猫脸大 2020-05-30
Woohome 2020-05-30
易鲸捷大数据库 2020-02-09
sunysh00 2020-05-07
middleware0 2020-05-07
xwb 2020-05-06
jaylong 2020-05-01