说起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系列之简介相关推荐

  1. beeline安装_Hive 系列 之 简介与安装

    下面是系列文章的目录 (1)hive系列之简介,安装,beeline和hiveserver2 (2)hive系列之基本操作 (3)hive系列之udf (4)hive系列之二级分区和动态分区 (5)h ...

  2. 【Proteus+51单片机学习笔记】-51/52系列单片机简介

    0 摘要 本文主要对STC89C52系列单片机进行了简单介绍,对其主要电路进行整理. 1 STC89C52系列单片机简介 STC89C52单片机指令完全兼容传统8051单片机,包括12T和6T两种模式 ...

  3. UUCP系列程序简介

    UUCP系列程序简介 1.UUCP系统概述 UUCP系统是一组程序,完成文件传输,执行系统之间的命令,维护系统使用情况的统计,保护安全.UUCP是UNIX系统最广泛使用的网络实用系统,这其中在两个原因 ...

  4. 目标检测YOLO系列------YOLO简介

    目标检测YOLO系列------YOLO简介 1.为什么会出现YOLO算法 2.YOLO算法会逐渐成为目标检测的主流吗     YOLO以及各种变体已经广泛应用于目标检测算法所涉及到的方方面面,为了梳 ...

  5. Lattice系列FPGA入门相关1(Lattice系列FPGA简介)

    需求说明:Lattice系统FPGA入门 内容       :Lattice系列FPGA简介 来自       :时间的诗 1.为什么Lattice在进入FPGA市场的第一年就能取得这么好的成绩? 我 ...

  6. 第三讲 i.MX系列芯片简介

    第三讲 i.MX系列芯片简介 文章目录 第三讲 i.MX系列芯片简介 一. i.MX 系列处理器 芯片选型 i.MX 6ULL 总览 i.MX 6ULL 特性 i.MX 6ULL 框图 注意 二. A ...

  7. 【原创】书本翻页效果booklet jquery插件系列之简介

    booklet jquery插件系列之简介 本文由五月雨恋提供,转载请注明出处. 一.安装 1.添加CSS和Javascript 添加booklet CSS文件到你的页面. <link rel= ...

  8. Redis6 系列一 简介与安装

    Redis6 系列一 简介与安装 穆成祥 千缘科技 1.      NoSQL数据库简介 1.1.  技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML. ...

  9. RxJava系列1(简介)

    RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...

最新文章

  1. 清华特奖答辩前10出炉,两名CS学生3篇顶会一作,有人周读3000页英文论文!
  2. 使用postman传递参数时报错:Content type ‘multipart/form-data;boundary=--(略)
  3. QML使用Python的函数
  4. python工作方法_用python开始一天工作
  5. PyQt5-高级控件使用(QTableView)
  6. thinkphp调用mysql存储过程_ThinkPHP执行调用存储过程怎么添加日志
  7. cocos 动画系统
  8. 【spring bean】bean的配置和创建方式
  9. 浅谈算法——莫比乌斯反演
  10. 隐藏在网络邻居背后的协议,快来看看你家网络有几种?
  11. PL读写PS端DDR的设计
  12. R软件做线性回归分析
  13. mysql笔记整理2(聚合函数).md
  14. 阿里云ECS的1M带宽能干嘛?(详解)
  15. Win10家庭版中文用户名改英文用户名方法(亲测管用)
  16. Excel中杂乱的图片,一键就可以让它们对齐行
  17. 计算机显示usb无法识别,计算机不断弹出无法识别的USB设备的解决方案
  18. 业余草分享面试题,JVM结构、GC工作机制详解
  19. Weinre《调试使用》
  20. Util-linux

热门文章

  1. php include include_once 区别,「PHP」include()、include_once()、require()、require_once()的用法及区别...
  2. 区块链+能源,能擦出什么样的火花?
  3. 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
  4. 初创公司面试要问什么_聘请初创公司的产品设计师时要问的问题
  5. ECMAScript 6 模板字面量的常见用法
  6. 弄懂“进程”(下):进程的控制、同步和通信
  7. 21个UI设计必会的设计技巧
  8. 零基础如何掌握web前端开发技能
  9. oracle触发器初始化,oracle – 触发器无法初始化变量
  10. (二十一)数组的初始化