天天看點

Rust中一些K/V存儲引擎

Rust中一些K/V存儲引擎

K/V存儲引擎的由來可以追溯到20世紀70年代的Berkley DB,而近年來,随着網際網路應用的發展,KV存儲引擎因其簡單高效、可擴充性和适合緩存應用等特點,在分布式存儲領域得到了廣泛應用。而使用Rust編寫KV存儲具有記憶體安全、高性能、并發安全、跨平台支援和Rust活躍的社群支援等提點,可以提高程式的可靠性、性能和可維護性,尤其适合用于對資料安全性有嚴格要求的場景。本周我們翻譯一篇Reddit上有關用Rust語言編寫的一些關鍵值存儲引擎的文章,讓大家一窺目前比較熱門的KV Store都有哪些~

本文的作者是Bassfaceapollo,原文釋出在Reddit下Rust讨論區。原文連結:

https://www.reddit.com/r/rust/comments/zwb4ri/some_keyvalue_storage_engines_in_rust/。

本文中的我,指代作者本人。

正文部分

我發現了一些很酷的項目想與社群分享。其中一些可能已經為你們所知了:

1. Engula - 一個分布式K/V存儲。它似乎是這些項目中最積極工作的了,但如果僅從版本(0.4.0)上看,仍然沒有為生産工作做好準備。

2. AgateDB - 一個由PingCAP建立的新的存儲引擎,試圖取代Tikv DB棧的RocksDB。

3. Marble - 一個新的K/V存儲,旨在成為Sled的存儲引擎。正如u/mwcAlexKorn在下面的評論中指出的,Sled本身可能仍在開發中。

4. PhotonDB - 一個旨在利用現代多核晶片、儲存設備、作業系統和程式設計語言的強大功能的高性能存儲引擎。目前雖然在Github上的star不多,但仍然在積極努力着,且看起來很不錯。是以我也想分享一下。

5. DustData - Rustbase的一個存儲引擎。Rustbase是一個NoSQL K/V資料庫。

6. Sanakirja - 由Pijul VCS背後的團隊開發,是一個由B-Tree支援的K/V存儲。它被Pijul團隊使用。與Git不同,Pijul是基于更新檔理論的一個新版本的控制系統。Sanakirja的源碼倉庫在Nest上,并且是目前唯一一個使用Pijul的代碼庫。 (credit: u/Kerollmops) 另外,Pijul和Sanakirja的作者Pierre-Étienne Meunier(u/pmeunier)也在這個話題中。你可以閱讀他的評論以了解更多的觀點。

7. Persy - Persy是一個用Rust編寫的事務性存儲引擎。(credit: u/Kerollmops)

8. ReDB - 一個簡單的、可移植的、高性能的、ACID的、嵌入式的K/V存儲,其靈感源自于 LMDB。(來源:u/Kerollmops)

9. Xline - 一個用于中繼資料管理的分布式K/V存儲,提供與etcd相容的API和k8s的相容性。(credit: u/withywhy)

10. Locutus - 一個分布式的、去中心化的K/V存儲,其中的鍵是決定該鍵下什麼值有效的加密合約。該存儲是可觀察的,允許建立在Locutus上的應用程式監聽值的變化并立即得到通知。加密合約是在webassembly中指定的。這種K/V存儲是分散的、可擴充的和不可信任的中心化服務的替代方案的基礎,包括電子郵件、即時通訊和社交網絡,其中許多都依賴于封閉的專有協定。(credit: u/sanity)

11. PickleDB-rs - PickleDB(基于 Python 實作) 的一個 Rust 實作版本。

結束語

顯而易見,很多項目(甚至是Rust項目)傾向于使用類似于RocksDB的東西來實作K/V。這不禁讓我想到了PingCAP的Tikv和Stalwart實驗室的JMAP伺服器。

話雖如此,我還是喜歡看到用Rust編寫這種東西的大膽嘗試。講一點題外話就是,我仍然忍不住驚訝,除了ToyDB之外,還沒有人嘗試在Rust中建立一個用于OLTP負載的關系型資料庫。

免責聲明

我本人與這些項目中的任何一個都沒有關系。我隻是在分享他們,因為我發現它們很有趣。

關于我們

達坦科技(DatenLord)推出的開源分布式KV存儲Xline,針對多資料中心場景,實作資料的高性能跨雲、跨資料中心共享通路,并保證資料的一緻性,友善業務系統實作多地多中心多活部署。

GitHub連結:Https://github.com/datenlord/Xline

達坦科技(DatenLord)專注下一代雲計算——“天空計算”的基礎設施技術,緻力于拓寬雲計算的邊界。達坦科技打造的新一代開源跨雲存儲平台DatenLord,通過軟硬體深度融合的方式打通雲雲壁壘,實作無限制跨雲存儲、跨雲聯通,建立海量異地、異構資料的統一存儲通路機制,為雲上應用提供高性能安全存儲支援。以滿足不同行業客戶對海量資料跨雲、跨資料中心高性能通路的需求。

公衆号:達坦科技DatenLord

知乎賬号:

B站: