RocksDb与LevelDB

news/2024/10/30 19:37:33/

1、RocksDB也开始支持HDFS,允许从HDFS读取数据。而LevelDB则是一个比较单一的存储引擎

2、RocksDB支持一次获取多个K-V,还支持Key范围查找。LevelDB只能获取单个Key

3、RocksDB除了简单的Put、Delete操作,还提供了一个Merge操作,说是为了对多个Put操作进行合并

4、RocksDB支持多线程合并,而LevelDB是单线程合并的。

5、RocksDB增加了合并时过滤器,对一些不再符合条件的K-V进行丢弃,如根据K-V的有效期进行过滤

6、压缩方面RocksDB可采用多种压缩算法,除了LevelDB用的snappy,还有zlib、bzip2

7、在故障方面,RocksDB支持增量备份和全量备份,允许将已删除的数据备份到指定的目录,供后续恢复。

8、RocksDB支持在单个进程中启用多个实例,而LevelDB只允许单个实例。

9、RocksDB支持管道式的Memtable,也就说允许根据需要开辟多个Memtable,以解决Put与Compact速度差异的性能瓶颈问题。在LevelDB里面因为只有一个Memtable,如果Memtable满了却还来不及持久化,这个时候LevelDB将会减缓Put操作,导致整体性能下降

个人觉得RocksDB尚未解决的地方:

  1. 依然是完全依赖于MANIFEST,一当该文件丢失,则整个数据库基本废掉。
  2. 合并上依然是整个文件载入,一些没用的Value将被多次的读入内存,如果这些Value很大的话,那没必要的内存占用将是一个可观的成本。

http://www.ppmy.cn/news/276506.html

相关文章

《操作系统》by李治军 | 实验6 - 信号量的实现和应用

目录 一、实验目的 二、实验内容 (一)用信号量解决生产者—消费者问题 (二)实现信号量,用生产者—消费者程序检验 三、实验准备 1、信号量 2、多进程共享文件 3、终端也是临界资源 4、原子操作、睡眠和唤醒 …

Java集合常见面试题集锦

1、介绍Collection框架的结构 集合是Java中的一个非常重要的一个知识点,主要分为List、Set、Map、Queue三大数据结构。它们在Java中的结构关系如下: Collection接口是List、Set、Queue的父级接口。 Set接口有两个常用的实现类:HashSet和Tre…

游戏建模资料大放送,3DMX+MAYA+ZBrush集教程,20G教学视频

Ⅰ、次世代游戏行业未来发展 随着科技的不断进步,次世代游戏已成为当今游戏发展的必然趋势。科技与游戏设计的完整结合,游戏主机、引擎的不断更新,为次世代游戏的再提升奠定了基础,更为众多用户带来了不同于以往的游戏体验。与此…

如何上好一堂乐高课?知乎上最多赞的回答。

1.作为一个乐高老师,怎么才能把课讲好,注重流程还是注重课堂气氛? 本人从11年开始教授乐高课程,说说自己的心得。 从10年以后开始,国内的各种所谓的lego education center开始如雨后春笋一般冒出,但是这些机…

手机投屏电视html,手机怎么投屏,怎么把手机里的电影投屏到电视上

最近为了找《变形金刚5》被骗了好多流量,所幸找了个抢先版的资源需要下载手机APP观看。这种大片用手机看画面肯定很渣,那么怎么把手机里的电影投屏到电视上看呢? 根据设备的不用,我总结了两种方案: 第一:带…

matplotlib的使用

数据分析 数据分析是用适当的方法对收集来的大量数据进行分析,帮助人们作出判断,以便采取适当行动。 matplotib 什么是matplotlib 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。 能将数据…

数据科学库之——matplotlib

本节主要讲解的是matplotlib的使用。 文章目录 1. 利用matplotlib绘制折线图2. 利用matplotlib绘制散点图3. 利用matplotlib绘制条形图4. 利用matplotlib绘制直方图5. 如果想绘制更好看的图 matplotlib是最流行的Python底层绘图库,主要做数据可视化图表,名字取材于…

深度学习的1000+篇文章总结

深度学习的1000篇文章总结 本文收集和总结了有关深度学习的1000篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其分享了有关AI的论文、文章、图书。 query 【深度学习】深度学习综述 http://www…