个人简介

Echo Blog


江湖无名 安心练剑
  • LSM 索引
    LSM 树(Log-Structured Merge Tree) LSM树而且通过批量存储技术规避磁盘随机写入问题。 LSM树的设计思想非常朴素, 它的原理是把一颗大树拆分成N棵小树,它首先写入到内存中(内存没有寻道速度的问题,随机写的性能得到大幅提升),在内存中构建一颗有序小树,随着小树越来越大,内存的小树会flush到磁盘上。磁盘中的树定期可以做merge操作,合并成一棵大树,以优化...
    2018-09-06 23:44:19 | Data-Struct
  • RocksDB-01-Start
    RocksDB RocksDB 是一个可嵌入的,持久性的 key-value存储。 基于Google的LevelDB,但提高了扩展性可以运行在多核处理器上,可以有效使用快速存储,支持IO绑定、内存和一次写负荷 特性 高性能:RocksDB使用一套日志结构的数据库引擎,为了更好的性能,这套引擎是用C++编写的。 Key和value是任意大小的字节流。 为快速存储而优化:RocksDB...
    2018-09-06 23:44:19 | Cache
  • MapDB
    MapDB MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine. 功能 直接替换映射、列表、队列和其他集合。 ...
    2018-09-06 23:44:19 | Cache
  • LevelDB-09-Version Iterable
    MVCC Version 保存了当前磁盘以及内存中所有的文件信息,一般只有一个Version叫做”current” version(当前版本)。 Leveldb还保存了一系列的历史版本,这些历史版本有什么作用呢? 当一个Iterator创建后,Iterator就引用到了current version(当前版本),只要这个Iterator不被delete那么被Iterator引用的版本就...
    2018-09-06 23:44:19 | Cache
  • LevelDB-08-cache
    Cache 书接前文,前面讲过对于levelDb来说,读取操作如果没有在内存的memtable中找到记录,要多次进行磁盘访问操作。 假设最优情况,即第一次就在level 0中最新的文件中找到了这个key,那么也需要读取2次磁盘,一次是将SSTable的文件中的index部分读入内存,这样根据这个index可以确定key是在哪个block中存储;第二次是读入这个block的内容,然后在内存...
    2018-09-06 23:44:19 | Cache
  • LevelDB-07-Compaction
    Compaction 前文有述,对于LevelDb来说,写入记录操作很简单,删除记录仅仅写入一个删除标记就算完事,但是读取记录比较复杂,需要在内存以及各个层级文件中依照新鲜程度依次查找,代价很高。 为了加快读取速度,levelDb采取了compaction的方式来对已有的记录进行整理压缩,通过这种方式,来删除掉一些不再有效的KV数据,减小数据规模,减少文件数量等。 levelDb的co...
    2018-09-06 23:44:19 | Cache
  • LevelDB-06-CURD
    写入与删除记录 在之前的五节LevelDb日知录中,我们介绍了LevelDb的一些静态文件及其详细布局,从本节开始,我们看看LevelDb的一些动态操作,比如读写记录,Compaction,错误恢复等操作。 本节介绍levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录。levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性。 图6.1是le...
    2018-09-06 23:44:19 | Cache
  • LevelDB-05-MemTable
    MemTable LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构, 本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位也不言而喻。 总体而言,所有KV数据都是存储在Memtable,Immutable Memtable和SSTable中的, Immutable Memtable从结构上讲和Memtable是完全一样的,区别仅仅在于其是只读的...
    2018-09-06 23:44:19 | Cache