自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

转载 LevelDb日知录之八:Compaction操作

前文有述,对于LevelDb来说,写入记录操作很简单,删除记录仅仅写入一个删除标记就算完事,但是读取记录比较复杂,需要在内存以及各个层级文件中依照新鲜程度依次查找,代价很高。为了加快读取速度,levelDb采取了compaction的方式来对已有的记录进行整理压缩,通过这种方式,来删除掉一些不再有效的KV数据,减小数据规模,减少文件数量等。        levelDb的compaction机

2013-06-10 22:57:45 1011

转载 LevelDb日知录之七:读取记录

LevelDb是针对大规模Key/Value数据的单机存储库,从应用的角度来看,LevelDb就是一个存储工具。而作为称职的存储工具,常见的调用接口无非是新增KV,删除KV,读取KV,更新Key对应的Value值这么几种操作。LevelDb的接口没有直接支持更新操作的接口,如果需要更新某个Key的Value,你可以选择直接生猛地插入新的KV,保持Key相同,这样系统内的key对应的value就会被

2013-06-10 22:39:30 831

转载 LevelDb之六 写入与删除记录

在之前的五节LevelDb日知录中,我们介绍了LevelDb的一些静态文件及其详细布局,从本节开始,我们看看LevelDb的一些动态操作,比如读写记录,Compaction,错误恢复等操作。本节介绍levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录。levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性。 图1 LevelDb写入记录

2013-06-10 19:23:43 932

转载 LevelDb之五:MemTable详解

LevelDb日知录前述小节大致讲述了磁盘文件相关的重要静态结构,本小节讲述内存中的数据结构Memtable,Memtable在整个体系中的重要地位也不言而喻。总体而言,所有KV数据都是存储在Memtable,Immutable Memtable和SSTable中的,Immutable Memtable从结构上讲和Memtable是完全一样的,区别仅仅在于其是只读的,不允许写入操作,而Memt

2013-06-10 18:09:05 1240

转载 LevelDb之四:SSTable文件

SSTable是Bigtable中至关重要的一块,对于LevelDb来说也是如此,对LevelDb的SSTable实现细节的了解也有助于了解Bigtable中一些实现细节。本节内容主要讲述SSTable的静态布局结构,我们曾在“LevelDb之二:整体架构”中说过,SSTable文件形成了不同Level的层级结构,至于这个层级结构是如何形成的我们放在后面Compaction一节细说。本节主要介绍S

2013-06-10 12:15:01 1040

转载 levelDB之二:整体架构

LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入一条记录,读出一条

2013-06-09 14:10:12 911

转载 初识LevelDB

概述        因为工作的关系接触到了KV系统,而levelDB又是第一个接触到的KV系统,想整理成博客系列,这个系列的博客以转载为主,因为碰到的几篇博客写的确实很不错,对于有疑问的地方可能会加上自己的注释和理解。初识levelDB        说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff D

2013-06-09 13:32:23 898

原创 linux内核sys_mount()分析

1. 概述        今天本来打算写一篇关于linux内核sys_mount()代码分析的文章,习惯性地打开google,看看是否有别人写的比较好,可以参考参考,打开第一篇发现居然是自己以前写的博客,真是囧,而且也记录在CSDN上,本想直接行使拿来主义,但看了下内容,发觉略有不妥,于是在那篇博客的基础上进行些修改和润色。        Linux下任何块设备在使用之前,首先要对其进行格式化成特

2013-06-07 19:29:31 7111

原创 使用UML调试linux内核

概述        UML这里不是统一建模语言,而是UserMode Linux的缩写,从字面上看,是在用户态运行linux内核,即将内核当作一个应用程序在跑,这样我们就可以用调试应用层程序的方法调试内核了,应用层的强大调试工具gdb就派上用场了。很多时候我们写内核代码,当遇到算法比较复杂但又不涉及底层结构的时候总是喜欢现在应用层实现并调试,然后在写到内核层。为什么,就是因为用户层调试比内核调

2013-06-02 14:51:40 1887

hack's delight

hacker's delight专门描述了计算机编程之中的各种位运算技巧,看完受益匪浅

2012-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除