几种内存数据的总结

MemSQL

原理:将不用锁的数据结构和即时编译器结合起来应对大容量的工作负载。在内存中实现了免锁的hashtable和免锁skiplists(一种层级关系的链表结构)来高速随机訪问数据。

持久性:MemSQL虽然在内存中存数据。能够通过写日志和快照(类似于checkpoint)对数据持久化到磁盘

复制:MemSQL眼下支持master-slave的复制方式,它支持本地复制协议能将事务日志转运到slave上。

分布式架构:基于聚合器和叶子节点的理念进行工作,一个叶子节点就是一个MemSQL的数据库。聚合器负责分解查询到相关的叶子节点上。同一时候将结果聚合回client。

GemFire基于内存的分布式集群系统,分布式内存数据平台的技术原理如上图所看到的:通过云计算平台虚拟化技术,将若干X86server的内存集中起来,组成最高可达数十TB的内存资源池,将所有数据载入到内存中,进行内存计算。计算过程本身不须要读写磁盘,仅仅是定期将数据同步或异步方式写到磁盘。GemFire在分布式集群中保存了多份数据,不论什么一台机器故障。其他机器上还有备份数据,因此通常不用操心数据丢失。并且有磁盘数据作为备份。

GemFire支持把内存数据持久化到各种传统的关系数据库、Hadoop库和其他文件系统中,12306之前採用Unix小型机架构,採用GemFire技术改造成Linux/X86server集群架构,就意味着一下跨越三代。从小型机到大内存X86server集群。不仅让性能提升了一个数量级,并且成本也要低得多。

Neo4j是一个嵌入式,基于磁盘的,支持完整事务Java持久化引擎,它在图(网络)中而不是表中存储数据。Neo4j提供了大规模可扩展性,在一台机器上能够处理数十亿节点/关系/属性的图,能够扩展到多台机器并行执行。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据。这些数据变化迅速。须要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。

Neo4j重点攻克了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过环绕图进行数据建模Neo4j会以同样的速度遍历节点与边,其遍历速度与构成图的数据量没有不论什么关系。此外,Neo4j还提供了很快的图算法、推荐系统和OLAP风格的分析,而这一切在眼下的RDBMS系统中都是无法实现的。

VOLTDB是一种开源的执行在集群上的OLTP数据库,智能高速数据的唯一内存解决方式。它提供了内存的性能,NoSQL的可扩展性,全然的流能力和传统关系型数据库的连续性,在密室和云环境下它提供了可靠和容错性。数据表被切割在集群的多个server上,兼容SQLACID,能够在线扩展,使用并行的单线程处理方式确保数据的一致性,避免传统数据库的锁和资源管理的开销。可是因为VOLTDB的数据分析是基于SNA,数据分布策略是基于哈希的,採用这样的方法后,集群规模是事先确定好的。新增机器须要停止服务后又一次分布数据,另外。数据哈希被分散后。数据的连续性被打乱。在这个数据结构上做范围查询须要用服务这张表的所用机器,处理范围查询效率会非常低下。

SAP HANA主要是用于主数据分析用的。hana能够抽取其它类型的数据,在hana上高速的分析。SAP HANA与传统分析模型的主要差别在于摒弃了不论什么物质化的东西,即。全部模型都是全然虚拟的,均基于主要的详细运营数据计算结果,这样,模型就行被方便的改动。

它採用数据字典的方法对数据进行压缩,最小化传输数据; 把大数据量和计算量分散到不同处理器上,不同的server之间共享一组数据,单一的server的DOWN机将不影响不论什么计算,成本特别贵,几千万。

原文地址:https://www.cnblogs.com/yutingliuyl/p/7202690.html