leveldb

gsls20080810 天前
数据库·grpc·leveldb
小型kv数据库leveldb配合grpc实现网络访问由于阿里云特价的机器内存较小,用redis负载太高,所以考虑小型一点的,先尝试用leveldb,rocksdb使用起来比较复杂,后面再考虑。
LunarCod7 个月前
linux·c++·后端·架构·存储·leveldb·源码剖析
LevelDB源码阅读笔记(1、整体架构)LeveDB源码笔记系列:LevelDB源码阅读笔记(0、下载编译leveldb)LevelDB源码阅读笔记(1、整体架构)
码灵1 年前
java·leveldb
java LevelDB工具类POM依赖工具类
明悠小猪1 年前
leveldb
LevelDB之Compaction前面大概了解了下LSM-Tree的合并。了解到了分层合并的核心理念,是让每一层的数据之间尽量减少重叠区域,这种方式主要是为了减少读放大的影响。也就是在读写吞吐之间做了取舍,尽量兼顾了读的性能。本文将介绍LevelDB中的合并操作。
明悠小猪1 年前
leveldb
LSM-Tree的读写放大和空间放大本文主要是针对阅读 A-Comparison-of-Fractal-Trees-to-Log-Structured-Merge-LSM-Trees的一个记录,该文章通过对分形树和LSM-Tree在数据写入过程中的读写放大做一个比较,了解到不同场景下读写的放大情况。因为分形树是B树在读写放大的场景下的一个优化,而且主要是学习LSM-Tree,本文主要选取LSM-Tree和B+树 部分的内容。
明悠小猪1 年前
后端·leveldb
LevelDB之Version在前面的文章中提到,MemTable 会转换为SSTable,SSTable 又分为多个层。Log中也会记录当前已经成功执行的指令。但是如何有效组织SSTable的层级,如何从崩溃状态恢复到崩溃前的状态呢?这里使用的组件就是Version。Version在LevelDB中的作用就是标识每一个文件的原始信息,如果SSTable 发生了变化,就会创建一个新的Version。
明悠小猪1 年前
后端·leveldb
LevelDB之SSTable读写本文是作为上一个LevelDB之SSTable的补充,因为上文介绍了SSTable的组织结构,本文会在代码层面介绍具体的实现。
明悠小猪1 年前
后端·leveldb
LevelDB之SSTable 数据结构数据顺利写入到LevelDB的Log 和MemTable之后,对客户端写入的请求而言,本次写入已经完成了。而本文主要探讨的就是MemTable中的数据到底是如何写入到磁盘上的,写入后的样子是什么样的。为了后续使用做了哪些工作?即介绍SSTable。
明悠小猪1 年前
后端·leveldb
LevelDB 之MemTable在 LevelDB 中,写完 WAL 日志以后,就可以将数据写入到 MemTable 了。MemTable 是 LSM-Tree必不可缺的一个组件,主要作用如下:
明悠小猪1 年前
后端·leveldb
LevelDB之Log在上一篇的文章中,将 LevelDB 的架构做了一个简单的介绍。分析了需要的各个模块,后文将针对各个模块做一个更加详细的介绍。在介绍的过程中,希望能够了解到为什么这么做。
明悠小猪1 年前
后端·leveldb
LevelDB的SkipList实现Leveldb中的SkipList具体实现在db/skiplist.h中。私有域:explicit关键字一般用来修饰类的构造函数,作用是告诉编译器按照实际的类型来构造函数,不允许做隐式转换。
明悠小猪1 年前
后端·leveldb
SkipList 基本原理和Java实现在数据结构中,树一直被很多系统钟爱,如mysql 的innodb使用的是B+ 数,在java中Map的hash碰撞后,如果链表超过8 会切换为红黑树。树结构的好处个人认为是在写入的时候对数据进行一个预处理,而且这个出力和子节点的数量相关,在写入的时候按照规则插入,能够在查询的时候有效的查询对应的子树,从而达到查询时间为LogN 。如红黑树,红黑树的结构是异构化的23 树,能够确保左右子树的高度差维持在1,有效保证数据平衡,但是红黑树的实现比较复杂,插入过程涉及到树的重平衡。后来出现了一种链表的结构,称之为