Apache Kafka及其配套的鍵值存儲系統如今用于為越來越多的關系數據庫提供持久性存儲。大多數數據庫使用鍵值存儲系統作為基礎。
最近冒出來的KarelDB是一種關系數據庫,它幾乎完全建立在開源組件的基礎上,包括用于SQL引擎的Apache Calcite以及用于事務和控制功能的Apache Omid。到目前為止,該開源數據庫僅支持單個節點,但是數據庫行業觀察人士認為它大有希望在將來擴大支持規模。
KaralDB及其他新興數據庫立足于Kafka嵌入式鍵值存儲系統和名為KCache的內存中緩存。默認情況下,這個新的關系數據庫使用配置成RocksDB緩存的KCache,而應用廣泛的Kafka流處理軟件支持RocksDB緩存。
基于Kafka的數據流平臺供應商Confluent的Robert Yokota特別指出:“這讓KarelDB得以支持更龐大的數據集和更快速的啟動時間?!盰okota在最近介紹KarelDB的博文中補充道:“如果需要,還可以配置KCache,以便使用內存中緩存而不是使用RocksDB?!?/p>
與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服務器可以作為一個集群運行,沒有單一故障點?!?/p>
KarelDB以捷克科幻小說作家Karel Capek的名字命名,世人認為是他發明了“機器人”(robot)一詞。一種編程語言也以他的名字命名。
Github:https://github.com/rayokota/kareldb
本文鏈接:http://www.thecarconnectin.com/28888.html
網友評論comments