
KVDB
文章平均质量分 86
可落地的KVDB相关原理及实践
Shi Peng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
再学LevelDB Compaction
Compaction原理原创 2022-06-19 22:43:41 · 239 阅读 · 0 评论 -
RocksDB学习笔记
一、RocksDB简介RocksDB是Facebook基于LevelDB开发的Key-value的LSM-Tree引擎,用户写入的Key-value会先写入磁盘的Log(称WAL, Write Ahead Log)中,然后再写入内存中的跳表(MemTable)。LSM-tree引擎将用户的随机写转换成对log文件的顺序写,因此比B树存储引擎有更好的写性能。当内存中的数据达到阈值后,会刷到磁盘上生成SST文件,SST文件又分多层(默认最多6层),每层的数据达到一定阈值后,会挑选一部分在上升T合并到下一层原创 2020-11-16 14:24:41 · 1153 阅读 · 0 评论 -
LevelDB 底层原理学习笔记
一、LevelDB简介LevelDB不同于关系型数据库,他内部的数据全部以KV形式存储,不支持SQL,只支持API调用。LevelDB是个noSQL的数据库引擎,由google开发并开源,由C++编写。Facebook在此基础上推出了RocksDB,后来包括TiDB等多种分布式noSQL数据库底层都是基于LevelDB。二、LevelDB架构首先上层是MemTable, Immutable MemTable。MemTable本质上就是个存放在内存中的SkipList数据结构。Immutable原创 2020-10-26 21:57:45 · 1158 阅读 · 2 评论 -
Level DB 学习笔记
一、前言1.1、作者简介Level DB是由google的两位大神级工程师Jeff Dean和Sanjay Ghemawat发起的开源项目。Jeff Dean:Google大规模分布式平台Bigtable和MapReduce的主要设计和实现者Sanjay Gghemawat:Google大规模分布式平台GFS,Bigtable和MapReduce主要设计和实现工程师。1.2、LevelDB简介LevelDB能够处理10亿级别规模的Key-Value持久性存储数据的C++程序库。Bigtable原创 2020-09-24 20:52:46 · 326 阅读 · 1 评论 -
美团KV存储学习笔记
参考链接:https://tech.meituan.com/2020/07/01/kv-squirrel-cellar.html一、美团点评KV存储发展历程第一代KV存储如下:上述memcached方案的问题是,在节点故障从技术摘除时,会丢数据;当需要扩容时,一致性哈希也会丢数据。随着redis的成熟,从memcached换成了redis,客户端仍用一致性hash,服务端变成了redis主从结构,当一个主节点宕机,redis通过哨兵模式完成failover,用选举一个从节点自动替代主节点,以此实现原创 2020-12-08 15:58:13 · 1396 阅读 · 1 评论 -
TiKV学习笔记
一、TiKV简介1.1、TiKV概述TiDB的存储用的TiKV, TiKV是基于RocksDB实现了分布式(可水平扩展,支持主从),RocksDB是对单机版LevelDB的封装。TiKV是开源的、分布式、支持事务的VK数据库。TiKV不仅提供了KV的API,且提供了兼容ACID的API。TiKV用Rust语言实现,用采用Raft协议,作为TiDB的存储层,是一个兼容了MySQL协议的分布式HTAP数据库。TiKV保证数据一致性,TiKV基于Rust语言实现了Raft协议,一致性状态存储在Rock原创 2020-11-05 21:58:40 · 7936 阅读 · 1 评论 -
高吞吐、HBase的承载者 LSMT 学习笔记
一、简介LSMT,即Log-Structured Merge-Tree,这是一个经典的数据结构,在大数据系统中有着非常广泛的应用。很多耳熟能详的经典系统,底层就是基于LSMT实现的。1.1、背景知识B+ Tree和B Tree的最大区别是将所有数据都放在了叶子节点,从而优化了批量插入和批量查询的效率,而优化的核心逻辑就是无论是什么存储介质,顺序存储的效率一定优于随机存储。下面的图很好的描述了随机读和顺序读的性能差异:这种差异不仅在机械硬盘上存储,在SSD上也一样存在。1.2、直观优化既然随机原创 2020-10-27 13:56:31 · 3592 阅读 · 0 评论 -
LevelDB整体架构学习笔记
一、简介LevelDB是一个可持久化的KV数据库引擎,由Google传奇工程师Jeff Dean和Sanjay Ghemawat开发并开源。二、设计思路众所周知,普通机械磁盘的顺序写性能远高于随机写,例如15000转的SAS盘,4000 IO写入,顺序写IOPS 为 200MB/s,而随机写性能只有 1MB/s,相差200倍。LevelDB的设计正是利用了磁盘的这个特性。LevelDB的数据是存储在磁盘上的,采用 LSM-Tree 结构。LSM-Tree将磁盘的随机写转化为顺序写,从而大大提高了写速原创 2020-10-14 10:07:01 · 209 阅读 · 1 评论