levelDB—整体架构介绍
来源:互联网 发布:中国移动手机oa软件 编辑:程序博客网 时间:2024/06/10 17:21
levelDB的整体架构见下图1。总体而言分内存和磁盘两部分。
1:memtable:内存中存放key-value的数据结构
2:Immutable memtable:是memtable的副本,一模一样,除了该table只不过是可读的,不能写入。
3:log:日志文件。
4:sstable manifest current:磁盘中存放key-value的数据结构。
当写入一个key-value的时候,首先写入log文件中,然后才会写入memtable中,然后当memtable到达一定程度时,然后转变成Immutable memtable,系统此时会重新创建新的memtable用于插入数据。然后Immutable memtable通过压缩数据存储到磁盘sstable中。
为什么先要写入log文件中呢?以防意外情况发生,导致memtable中的数据未及时写入到磁盘上,如果先写入到log文件中,可以重新进行恢复数据。
下述博客内容主要从源代码进行讲解相关的levelDB的内容,会穿插一些详细的设计策略等,阅读源代码的顺序主要为:
1:include文件夹中包含的.h文件,该文件夹中的文件定义了系统所有使用到的类或者结构体,明白这些类型的定义有助于读懂其他文件夹的类实现或者定义。
2:util文件夹中包含的文件
3:table文件夹包含的文件
4:db文件夹中包含的实现cc文件
本文只讲解大体的架构,后续会继续讲解相关的主要流程以及数据结构等。此文会继续更新。
图1: levelDB架构图(感谢csdn博主sparkliang提供此图,http://blog.csdn.net/sparkliang/article/details/8567602)
- levelDB—整体架构介绍
- leveldb整体架构
- LevelDB整体架构分析
- LevelDB整体介绍
- levelDB之二:整体架构
- LevelDb之二:整体架构
- LevelDb日知录之二整体架构
- Flume整体架构介绍
- Leveldb整体框架
- LevelDB介绍
- LevelDB 介绍
- LevelDb介绍 .
- LevelDB 介绍
- jeecms 整体架构介绍--很好的
- Mongo 整体架构介绍(1)-------分片集群
- linux内核的整体架构介绍
- 网站数据仓库整体架构图及介绍
- JVM原理、架构—整体架构
- Install Android Composite ADB Interface driver for Windows 7 and Ubuntu Linux
- 用VB模拟带有修饰键的组合键
- AE+C#通过多线程向GlobeControl中增加图层
- vim 改变窗口的大小
- 《运算放大器权威指南》读书笔记(二)
- levelDB—整体架构介绍
- XMPP学习记录四:关于接受,发送消息和获取好友上下线的状态
- tomcat iis下公用80端口 只需输入域名即可访问不同项目;适用于iis服务器下部署多个项目
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?
- Hadoop vs Spark性能对比
- 【cocos2d-x IOS游戏开发-捕鱼达人3】交叉编译环境搭建
- 弹出最简单的模式化遮罩层的js代码
- 一步一步学android控件(之二十九)—— SearchView
- ItemEvent事件