RocksDB 和 LevelDB 和 Riak 一样吗?

问题描述

我有一个关于一些 Nosql 数据库的问题。例如,在 Ehcache 中有 jcache API,在 MapDB 中有 Map Interface,在 Riak KV 中有自己的集群进程。我如何准确找出哪个数据库适合哪种实现类型?例如 RocksDB(我假设它是一个进程)和 LevelDB 一样。

解决方法

作为参考,RocksDB 和 LevelDB 执行非常相似的功能,并且在某些情况下可以互换。

鉴于您对 Is RocksDB and LevelDB just like Riak? 的问题,我可以说它们与 Riak 提供了一个可扩展的分布式平台以运行该平台不同,该平台可以同时连接到一个或多个后端数据库(目前支持的后端是 Bitcask、LevelDB ,调平和记忆)。 RocksDB 和 LevelDB 本质上是独立的数据库平台,可以单独使用,也可以被其他软件(如 Riak)用作后端。虽然您可以在技术上将 RocksDB 实现为 Riak KV 的后端,而无需大量自定义代码,但您可能不想这样做,因为 RocksDB 的扩展性不佳。

How do I exactly find out which database fits to which implementation type? 是一个相当广泛的问题。我认为您可能希望将其重新表述为 Which databases offer me {my list of desired implementations/functions}?,以便社区成员更容易回答。请注意,某些 NoSQL 数据库有多种用途,例如正如你提到的 Riak KV,我们有 Maps、Sets、GSets、Flags、Registers、Solr Search、2i 和标准 CRDT 选项,但其中一些可能与其他要求相关,例如2i 仅适用于 LevelDB/Leveled 后端,Solr Search 需要 Riak KV 3.0.0 及更高版本的 Yokozuna 软件包版本,但内置于所有 Riak 2.x.x 版本等。

您可能还想尝试做的是将一些不同的选项下载到 VM 或裸机设备,试玩一下,看看效果如何。通常情况下,两种竞争产品在纸面上的表现非常相似,但在您的特定用例中,一种明显优于另一种。

为了让您入门,这里有指向 Riak 2.9.8(2.xx 系列的最新版本)和 Riak 2.2.6 docs(2.9.x 文档应在本月晚些时候发布)的链接。

我不确定这是否直接回答了您的问题,但希望它能给您一些关于下一步去向的指示。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...