表格存储--BigTable & Cassandra
之前抽时间研究了下当前比较火热的两款表格存储,BigTable和Cassandra。这篇文章主要对两者做一个对比概括。
Architecture
Bigtable是中心化架构,其有一个特殊的角色Master。该Master通过向Chubby抢锁的方式来实现,Master负责很多工作,例如:负载均衡、为tablet ...
之前抽时间研究了下当前比较火热的两款表格存储,BigTable和Cassandra。这篇文章主要对两者做一个对比概括。
Bigtable是中心化架构,其有一个特殊的角色Master。该Master通过向Chubby抢锁的方式来实现,Master负责很多工作,例如:负载均衡、为tablet ...
B+-Tree有两种节点:leaf节点和index节点(non-leaf节点)。并且不像B-Tree和其他的二叉查找树,B+-Tree仅仅在leaf节点保存数据,index节点保存指向其child...
Bitcask基于Log-Structured Hash Table实现,其起源与Riak分布式数据库的历史密切相关。在Riak kv集群中,每一个节点使用可插拔式的本地存储引擎,几乎一切kv形式的存储引擎都可以被使用。
在设计BitCask时,有如下几个目标:
每个ite...
Key-value存储支持key-value API,以及管理key-value pairs,其应用十分广泛。
Storage Engine D...
Aurora是亚马逊开发的一款OLTP数据库,可以100%兼容MySQL协议。并采用存算分离、redo log下沉、减少数据传输、异步化处理等方式来大幅提高性能。其精髓是log is the database。
存算分离架构的本质是拆解系统功能,让各个独立组件的功能更加内聚。功能拆解后,原本有可能争抢资源而互相影响的功能分解开了。另外,由于...
目前最优秀的存储系统,很多有依赖于LSM-tree来构建。LSM-tree通过提高IO放大换取顺序写,以提升写入性能,这对于HDD磁盘这种random IO比sequential IO慢100倍的情况具有很大的优化效果。然而对于SSD却不一定有这么明显的效果,主要原因有三:
SLM-DB全名Single-Level Key-Value Store with Persistent Memory。是使用了Persistent memory对LSM-tree based存储引擎进行了一系列优化。
读放大。由于读放大存在导致读取操作需要遍历...
当前Pegasus中,读操作尤其是范围读性能很差,并且线上Pegasus的抖动通常是由读导致的。所以需要找到一个方式对其进行优化。
LSM-tree的核心思想是牺牲读性能来换取顺序写,提高写性能。所以,读性能低是LSM-tree based存储系统的通病,因为多level存在会引起读放大...