LevelDb系列之简介
说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat。这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二。
Jeff Dean其人:http://research.google.com/people/jeff/index.html,Google大规模分布式平台Bigtable和MapReduce主要设计和实现者。
Sanjay Ghemawat其人:http://research.google.com/people/sanjay/index.html,Google大规模分布式平台GFS,Bigtable和MapReduce主要设计和实现工程师。
LevelDb就是这两位大神级别的工程师发起的开源项目,简而言之,LevelDb是能够处理十亿级别规模Key-Value型数据持久性存储的C++ 程序库。正像上面介绍的,这二位是Bigtable的设计和实现者,如果了解Bigtable的话,应该知道在这个影响深远的分布式存储系统中有两个核心的部分:Master Server和Tablet Server。其中Master Server做一些管理数据的存储以及分布式调度工作,实际的分布式数据存储以及读写操作是由Tablet Server完成的,而LevelDb则可以理解为一个简化版的Tablet Server。
LevelDb有如下一些特点:
首先,LevelDb是一个持久化存储的KV系统,和Redis这种内存型的KV系统不同,LevelDb不会像Redis一样狂吃内存,而是将大部分数据存储到磁盘上。
其次,LevleDb在存储数据时,是根据记录的key值有序存储的,就是说相邻的key值在存储文件中是依次顺序存储的,而应用可以自定义key大小比较函数,LevleDb会按照用户定义的比较函数依序存储这些记录。
再次,像大多数KV系统一样,LevelDb的操作接口很简单,基本操作包括写记录,读记录以及删除记录。也支持针对多条操作的原子批量操作。
另外,LevelDb支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据。
除此外,LevelDb还支持数据压缩等操作,这对于减小存储空间以及增快IO效率都有直接的帮助。
LevelDb性能非常突出,官方网站报道其随机写性能达到40万条记录每秒,而随机读性能达到6万条记录每秒。总体来说,LevelDb的写操作要大大快于读操作,而顺序读写操作则大大快于随机读写操作。至于为何是这样,看了我们后续推出的LevelDb日知录,估计您会了解其内在原因。
LevelDB的使用请参考上一篇博文:LevelDB:一个快速轻量级的key-value存储库
下一篇介绍LevelDB系列之整体架构
转载于:https://www.cnblogs.com/jacksu-tencent/p/3390251.html
LevelDb系列之简介相关推荐
- beeline安装_Hive 系列 之 简介与安装
下面是系列文章的目录 (1)hive系列之简介,安装,beeline和hiveserver2 (2)hive系列之基本操作 (3)hive系列之udf (4)hive系列之二级分区和动态分区 (5)h ...
- 【Proteus+51单片机学习笔记】-51/52系列单片机简介
0 摘要 本文主要对STC89C52系列单片机进行了简单介绍,对其主要电路进行整理. 1 STC89C52系列单片机简介 STC89C52单片机指令完全兼容传统8051单片机,包括12T和6T两种模式 ...
- UUCP系列程序简介
UUCP系列程序简介 1.UUCP系统概述 UUCP系统是一组程序,完成文件传输,执行系统之间的命令,维护系统使用情况的统计,保护安全.UUCP是UNIX系统最广泛使用的网络实用系统,这其中在两个原因 ...
- 目标检测YOLO系列------YOLO简介
目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗 YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...
- Lattice系列FPGA入门相关1(Lattice系列FPGA简介)
需求说明:Lattice系统FPGA入门 内容 :Lattice系列FPGA简介 来自 :时间的诗 1.为什么Lattice在进入FPGA市场的第一年就能取得这么好的成绩? 我 ...
- 第三讲 i.MX系列芯片简介
第三讲 i.MX系列芯片简介 文章目录 第三讲 i.MX系列芯片简介 一. i.MX 系列处理器 芯片选型 i.MX 6ULL 总览 i.MX 6ULL 特性 i.MX 6ULL 框图 注意 二. A ...
- 【原创】书本翻页效果booklet jquery插件系列之简介
booklet jquery插件系列之简介 本文由五月雨恋提供,转载请注明出处. 一.安装 1.添加CSS和Javascript 添加booklet CSS文件到你的页面. <link rel= ...
- Redis6 系列一 简介与安装
Redis6 系列一 简介与安装 穆成祥 千缘科技 1. NoSQL数据库简介 1.1. 技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML. ...
- RxJava系列1(简介)
RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...
最新文章
- 清华特奖答辩前10出炉,两名CS学生3篇顶会一作,有人周读3000页英文论文!
- 使用postman传递参数时报错:Content type ‘multipart/form-data;boundary=--(略)
- QML使用Python的函数
- python工作方法_用python开始一天工作
- PyQt5-高级控件使用(QTableView)
- thinkphp调用mysql存储过程_ThinkPHP执行调用存储过程怎么添加日志
- cocos 动画系统
- 【spring bean】bean的配置和创建方式
- 浅谈算法——莫比乌斯反演
- 隐藏在网络邻居背后的协议,快来看看你家网络有几种?
- PL读写PS端DDR的设计
- R软件做线性回归分析
- mysql笔记整理2(聚合函数).md
- 阿里云ECS的1M带宽能干嘛?(详解)
- Win10家庭版中文用户名改英文用户名方法(亲测管用)
- Excel中杂乱的图片,一键就可以让它们对齐行
- 计算机显示usb无法识别,计算机不断弹出无法识别的USB设备的解决方案
- 业余草分享面试题,JVM结构、GC工作机制详解
- Weinre《调试使用》
- Util-linux
热门文章
- php include include_once 区别,「PHP」include()、include_once()、require()、require_once()的用法及区别...
- 区块链+能源,能擦出什么样的火花?
- 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
- 初创公司面试要问什么_聘请初创公司的产品设计师时要问的问题
- ECMAScript 6 模板字面量的常见用法
- 弄懂“进程”(下):进程的控制、同步和通信
- 21个UI设计必会的设计技巧
- 零基础如何掌握web前端开发技能
- oracle触发器初始化,oracle – 触发器无法初始化变量
- (二十一)数组的初始化