系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

RocksDB官方版

v6.16.4

RocksDB官方版

  • 软件大小:7.34 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:编程开发
  • 软件平台:WinAll
  • 更新时间:2022-01-27 15:11
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

RocksDB简介

RocksDB是一个引擎库,可以帮助用户设计具有关键价值存储服务的功能模块,适用于大多数快速存储服务。例如,如果您需要构建用于在硬件设备中存储数据的功能模块,您可以添加该库并将其嵌入到您的应用系统中。当需要向闪存卡发送数据时,可以自动调用RocksDB相关功能进行数据存储。该软件可用于各种快速存储设备。比如内存、硬盘等设备的快速存储可以通过这个软件配置相关的持久键值存储方案,支持数据的多线程压缩,提高数据读写效率,特别适合单个数据库存储多个万亿字节的数据!

RocksDB软件功能

RocksDB是一个带有键/值接口的存储引擎,其中键和值是任意字节流。这是一个C ++库。它是根据LlDB在脸书开发的,并为LlDB API提供向后兼容的支持。

RocksDB支持各种存储硬件,其中快速刷新是首要关注点。它使用结构化数据库引擎进行存储,完全用C ++编写,并且有一个名为RocksJava的Java包装器。

RocksDB可以适应各种生产环境,包括纯内存、闪存、硬盘或远程存储。当RocksDB无法自动适配时,它提供高度灵活的配置设置,允许用户进行调整。它支持各种压缩算法,是生产支持和调试的好工具。

高能的

RocksDB使用完全用C ++编写的结构化数据库引擎来实现最佳性能。键和值只是任何大小的字节流。

针对快速存储进行优化

RocksDB针对快速和低延迟存储进行了优化,例如闪存驱动器和高速磁盘驱动器。RocksDB充分利用闪存或RAM提供的高读写速率的全部潜力。

适应性强

RocksDB可以适应不同的工作负载。从MyRocks等数据库存储引擎到应用程序数据缓存再到嵌入式工作负载,RocksDB可用于各种数据需求。

以及基本和高级数据库。

RocksDB提供了一些基本任务,比如打开和关闭数据库,读写更高级的任务(比如合并和压缩过滤器)。

RocksDB软件特色

专为希望在本地或远程存储系统上存储高达几兆字节数据的应用程序而设计。

针对在快速存储闪存设备或内存中存储中小键值进行了优化。

它在多核处理器上运行良好。

RocksDB教程

介绍

RocksDB库提供了一个持久的键值存储。键和值是任意字节数组。根据用户指定的比较器功能对键值存储中的键进行排序。

该库由脸书数据库工程团队运营,基于谷歌的桑杰·格玛瓦特和杰夫·迪恩的LlDB。

打开数据库

ckdb数据库的名称对应于文件系统目录。数据库的所有内容都存储在这个目录中。以下示例显示了如何打开数据库并在必要时创建它:

如果要在数据库已经存在时引发错误,请在cksdb :: DB :: Open调用前添加以下行:

状态

您可能已经注意到cksdb::Status上面的类型。RocksDB中的大多数函数都可能返回这种类型的值,并且这些函数可能会遇到错误。您可以检查结果是否正常,也可以打印相关的错误信息:

关闭数据库

数据库完成后,只需删除数据库对象。示例:

直读式记录

数据库提供了Put、Delete和Get方法来修改/查询数据库。例如,下面的代码将存储在key1下的值移动到key2。

RocksDB中的内存使用情况

在这里,我们试图解释RocksDB是如何使用内存的。RocksDB中有几个组件可以帮助使用内存:

1.块缓存

2.索引和布隆过滤器

3.存储表

4.迭代器固定块

我们将依次描述它们。

对于一些正在进行的项目,可以提高内存效率。

块缓存

块缓存是RocksDB缓存未压缩数据块的地方。您可以通过设置BlockBasedTableOptions的block_cache种类来配置块缓存的大小:

如果在数据块缓存中找不到数据块,RocksDB使用缓冲的IO从文件中读取数据块。这意味着它还用作系统的页面缓存,以存储通常包含压缩数据的原始文件块。在某种程度上,RocksDB的缓存分为两层:块缓存和页缓存。与直觉相反,减小块缓存大小不会增加IO。保存的内存可用于页面缓存,因此将缓存更多数据。但是,由于RocksDB需要对从页面缓存中读取的页面进行解压缩,因此CPU使用率可能会增加。

要知道使用了多少内存块缓存,您可以在块缓存对象上调用函数GetUsage()或在数据库对象上调用getPperty():

和索引过滤块。

索引和筛选块可能是大内存用户,默认情况下,它们不会计入您分配给块缓存的内存中。有时这可能会给用户造成混乱:您为块缓存分配了10GB,但是RocksDB使用了15GB的内存。差异通常由索引和布隆过滤器块来解释。

我们不断使索引和过滤器更加紧凑。要利用最新的改进,请使用最新的格式版本blockbasedtableoptions . format _ version至。需要显式启用其他较新的功能:

设置blockbasedtableoptions . optimize _ filters _ for _ memory更多对jemalloc友好的Bloom筛选器大小。

也可以考虑使用新的带状过滤器。

存储表

您可以将内存表视为内存中的写缓冲区。每个新的键值对首先被写入内存表。内存大小由选项wte_buffer_size控制。除非使用许多列系列和/或数据库实例,否则它通常不会消耗大量内存。但是,内存大小会影响写放大:内存中的内存越多,产生的写放大越少。如果您增加内存大小,请确保也增加L1大小!L1的大小由选项max_bytes_for_ll_base控制。

要获取当前内存大小,您可以使用:

迭代器固定块

迭代器固定块通常对整体内存使用影响不大。但是,在某些情况下,当您同时执行100,000个读取事务时,可能会给内存带来压力。固定块的内存使用量很容易计算。每个迭代器精确地为每个L0文件固定一个数据块,为每个L1+级固定一个数据块。因此,固定块的总内存使用量约为num _ iterators * block _ size *(num _ lls-1)+num _ l0 _ files)。要获取此内存使用情况的统计信息,请在块缓存对象上调用GetPinnedUsage()或在数据库对象上调用getPperty():

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件