
分布式KV
kai_ding
这个作者很懒,什么都没留下…
展开
-
初识LevelDB
概述 因为工作的关系接触到了KV系统,而levelDB又是第一个接触到的KV系统,想整理成博客系列,这个系列的博客以转载为主,因为碰到的几篇博客写的确实很不错,对于有疑问的地方可能会加上自己的注释和理解。初识levelDB 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff D转载 2013-06-09 13:32:23 · 921 阅读 · 0 评论 -
LevelDb之四:SSTable文件
SSTable是Bigtable中至关重要的一块,对于LevelDb来说也是如此,对LevelDb的SSTable实现细节的了解也有助于了解Bigtable中一些实现细节。本节内容主要讲述SSTable的静态布局结构,我们曾在“LevelDb之二:整体架构”中说过,SSTable文件形成了不同Level的层级结构,至于这个层级结构是如何形成的我们放在后面Compaction一节细说。本节主要介绍S转载 2013-06-10 12:15:01 · 1062 阅读 · 0 评论 -
LevelDb之五:MemTable详解
LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构,本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位也不言而喻。总体而言,所有KV数据都是存储在Memtable,Immutable Memtable和SSTable中的,Immutable Memtable从结构上讲和Memtable是完全一样的,区别仅仅在于其是只读的,不允许写入操作,而Memt转载 2013-06-10 18:09:05 · 1286 阅读 · 0 评论 -
LevelDb之六 写入与删除记录
在之前的五节LevelDb日知录中,我们介绍了LevelDb的一些静态文件及其详细布局,从本节开始,我们看看LevelDb的一些动态操作,比如读写记录,Compaction,错误恢复等操作。本节介绍levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录。levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性。 图1 LevelDb写入记录转载 2013-06-10 19:23:43 · 960 阅读 · 0 评论 -
LevelDb日知录之七:读取记录
LevelDb是针对大规模Key/Value数据的单机存储库,从应用的角度来看,LevelDb就是一个存储工具。而作为称职的存储工具,常见的调用接口无非是新增KV,删除KV,读取KV,更新Key对应的Value值这么几种操作。LevelDb的接口没有直接支持更新操作的接口,如果需要更新某个Key的Value,你可以选择直接生猛地插入新的KV,保持Key相同,这样系统内的key对应的value就会被转载 2013-06-10 22:39:30 · 854 阅读 · 0 评论 -
levelDB之二:整体架构
LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入一条记录,读出一条转载 2013-06-09 14:10:12 · 929 阅读 · 0 评论