Bw-Tree:在新硬件平台上的新B-Tree
ARS 与 Bw-Tree
nosql数据库从本质上说,都属于ARS(Atomic Record Stores,“原子记录存储”)。
最常见的“原子记录存储”一种实现就是朴素的Hash表:通过一个特定的key,来读写一条独立的数据记录。
一些基于key-value(键-值)模型的nosql的内部实现正是使用了Hash表,例如Redis1、memcache、Riak等。
而有一些nosql数据库为了支持高效的key-sequential(键-序列)查找,采用了tree-based2数据结构进行数据存储,所以B-Tree成为了一些数据库(both nosql and sql)的首选。
本文介绍了一种基于新型硬件的高性能ARS实现,其核心技术有:
- 页式内存管理
- Bw-Tree,一种基于B-Tree的树存储结构
- 基于日志的存储管理
在现代硬件上的Bw-Tree
现代多核CPU
多核CPU带来了高并发,但是同时也引入了锁竞争和缓存失效问题。
为了讲解锁竞争,这里我们举一个经典的例子:多线程计数器。
我们都知道,如果不使用锁来保护计数器变量的话,那么最终的结果几乎不可能是正确的。多个线程中 …
more ...