Kafka 孕育了一款开源关系数据库:KarelDB

Apache Kafka 及其配套的键值存储系统如今用于为越来越多的关系数据库提供持久性存储。大多数数据库使用键值存储系统作为基础。

最近冒出来的 KarelDB 是一种关系数据库,它几乎完全建立在开源组件的基础上,包括用于 SQL 引擎的 Apache Calcite 以及用于事务和控制功能的 Apache Omid。到目前为止,该开源数据库仅支持单个节点,但是数据库行业观察人士认为它大有希望在将来扩大支持规模。

KaralDB 及其他新兴数据库立足于 Kafka 嵌入式键值存储系统和名为 KCache 的内存中缓存。默认情况下,这个新的关系数据库使用配置成 RocksDB 缓存的 KCache,而应用广泛的 Kafka 流处理软件支持 RocksDB 缓存。

基于 Kafka 的数据流平台供应商 Confluent 的 Robert Yokota 特别指出:“这让 KarelDB 得以支持更庞大的数据集和更快速的启动时间。”Yokota 在最近介绍 KarelDB 的博文中补充道:“如果需要,还可以配置 KCache,以便使用内存中缓存而不是使用 RocksDB。”

与 Confluent 基于 Kafka 的平台不同,KarelDB 不是一种数据流数据库。不过,Yokota 之所以为该关系数据库摇旗呐喊,主要原因是它基于 Kafka 支持的开源组件。因此,他认为它有可能流行起来。

那些开源组件包括 Calcite,这种 SQL 框架将关系查询推送到数据存储系统,该方法被认为可以提供更高效的处理。Yokota 特别指出,KarelDB 将从即将发布的 Calcite 优化机制中“自动受益”。

其他开源项目(比如 Apache Flink 流处理引擎)也充分利用了 Calcite,包括 SQL API。Calcite 还包括一个 SQL 解析器。

与此同时,Apache Omid 框架与 KarelDB 一起使用,以支持键值存储系统上的事务。Omid 最初被设计为面向 HBase NoSQL 数据库的事务管理器,但由于它使用现有的键值存储系统来维护事务元数据,因此与 KCache 相辅相成、相得益彰。

Yokota 特别指出,KarelDB 将诸如此类的功能堆叠在 KCache 的上面以管理事务。Omid 还使用一种名为多版本并发控制的技术,在其他关系数据库中实现“快照隔离”机制。

KarelDB 还因能够作为嵌入式数据库或服务器运行而受到吹捧。在后一种情况下,它使用 Apache Avatica 支持远程过程调用(PRC)传输协议。

Yokota 特别指出,使用 Kafka 运行诸如此类的开源组件有诸多优点,其中之一在于多台服务器能够“跟踪”(tail)同一主题集。他补充道:“这让多台 KarelDB 服务器可以作为一个集群运行,没有单一故障点。”

KarelDB 以捷克科幻小说作家 Karel Capek 的名字命名,世人认为是他发明了“机器人”(robot)一词。一种编程语言也以他的名字命名。

Github:https://github.com/rayokota/k...

新闻来源:腾讯网云头条

你可能感兴趣的:(开放源代码,数据库)