IT商业网-解读信息时代的商业变革
当前位置: 首页 > 软件 > 正文

Apache Kafka“孕育”一款关系数据库KarelDB 基于开源组件构建

2019-10-10 18:00:09  来源:开源中国    

  Java开发者对Apache Kafka应该不会感到陌生,这是一个分布式的发布订阅消息系统,作为一个非常重要的开源项目,它已经被许多公司以及产品用作关键组件。Kafka及其配套的Key-Value存储系统如今也越来越多地被用来为关系数据库提供持久性存储,大多数数据库也使用Key-Value存储系统作为基础。

  本文将要介绍的这款数据库正是由 Apache Kafka提供支持,它同样使用了来自Kafka配套的Key-Value存储系统。

  

 

  近期面世的KarelDB是一款关系数据库,它几乎完全基于开源组件构建,包括用于SQL引擎的Apache Calcite以及用于事务和控制功能的Apache Omid。到目前为止,这款数据库仅支持单节点,但 KarelDB的作者表示它在将来会扩大支持规模。

  和其他的新兴数据库一样,KarelDB同样基于Kafka的嵌入式Key-Value存储系统和名为 KCache 的内存缓存(in-memory cache)。默认情况下,KarelDB使用配置成RocksDB缓存的KCache,由应用广泛的Kafka流处理软件提供支持。

  KarelDB的作者,同时任职于Confluent公司(基于Apache Kafka提供流数据平台的供应商)的Robert Yokota表示:“这使得KarelDB能够支持规模更大的数据集和拥有更快的启动时间。”他还在最近介绍KarelDB的博文中补充道:“KCache可被配置成使用内存缓存而非RocksDB。”

  与 Confluent基于Kafka的平台不同,KarelDB不是流数据库。尽管如此,Yokota还是选择了关系数据库,主要是因为它基于Kafka支持的开源组件。因此,他认为KarelDB有机会流行起来。这些开源组件包括Calcite,它是一个SQL框架,支持将关系查询推送到数据存储系统,这个方法被认为可以提供更高效的处理。Yokota表示KarelDB会从即将推出的Calcite优化机制中“自动受益”。

  与此同时,Apache Omid框架与KarelDB一起使用,以支持Key-Value存储系统上的事务。Omid最初被设计为面向HBase NoSQL数据库的事务管理器,但由于它使用现有的Key-Value存储系统来维护事务元数据,因此与KCache轻松地配套使用。

  Yokota指出,KarelDB将类似的功能堆叠在KCache的上面以管理事务。Omid还使用一种独有的名为多版本并发控制(multi-version concurrency control)的技术,以在其他关系数据库中实现“快照隔离(snapshot isolation)”机制。此外,KarelDB还支持作为嵌入式数据库或服务器运行。在第二种情况下,它使用 Apache Avatica 来支持远程过程调用传输协议(Remote Procedure Call wire protocol)。

  Yokota还认为使用Kafka运行这些开源组件有许多优点,其中一个就是多台服务器能够“追踪”同一主题集。也就使得多台KarelDB服务器可以作为一个集群运行,而不会产生单一故障点。”

  对了,KarelDB名字的灵感来自一位科学家——它以捷克科幻小说作家Karel Capek的名字命名,Karel Capek被认为发明了“机器人”(robot)一词。此外,还有一门编程语言也是以他的名字命名。

免责声明: IT商业新闻网遵守行业规则,本站所转载的稿件都标注作者和来源。 IT商业新闻网原创文章,请转载时务必注明文章作者和来源“IT商业新闻网”, 不尊重本站原创的行为将受到IT商业新闻网的追责,转载稿件或作者投稿可能会经编辑修改或者补充, 如有异议可投诉至:post@itxinwen.com
微信公众号:您想你获取IT商业新闻网最新原创内容, 请在微信公众号中搜索“IT商业网”或者搜索微信号:itxinwen,或用扫描左侧微信二维码。 即可添加关注。
标签:

品牌、内容合作请点这里: 寻求合作 ››

相关阅读RELEVANT