CavalliumDBEngine
1.0.0
使用 Project Reactor 用 Jva (17+) 編寫的反應式資料庫引擎。
該函式庫提供了鍵值儲存和搜尋引擎的基本反應式抽象化和實作。
有四種現成的實現,兩種用於鍵值存儲,兩種用於搜尋引擎,但可以添加更多實現。
可以使用高效的自訂序列化格式對查詢進行序列化和反序列化
資料庫抽象化可以透過使用RocksDB JNI和Netty 5緩衝區來避免多次複製數據
可以使用產生 Java 16 記錄的資料產生器:它允許您透過使用 .yaml 檔案定義欄位來產生自訂記錄。
生成器還在編譯時為每個自訂記錄產生專用序列化器、反序列化器和升級器的來源。
鍵值儲存抽象化可讓您透過自動使用自訂升級程式和自訂反序列化器來透明地反序列化舊版本的資料。
數據生成器可以在數據生成器存儲庫中找到。
RocksDB 鍵值存儲
Apache Lucene 核心索引庫
為什麼這麼難用?
這不是 DBMS。
這是一個可以建構 DBMS 的引擎;因此,如果不在上面建立另一個抽象層,就很難直接使用。
我可以使用物件而不是位元組數組嗎?
是的,您必須使用您選擇的庫對它們進行序列化/反序列化。
CodecSerializer 可讓您使用每個資料版本的編解碼器來實現版本化資料。請注意,它為每個值多使用 1 到 4 個位元組來儲存版本。
為什麼每個資料庫部分都有快照功能?
由於 RocksDB 和 lucene 索引是不同的庫,因此您無法自動拍攝每個資料庫的快照。
通用快照必須作為每個資料庫快照的集合來實作。
CavalliumDB 引擎適合您的專案嗎?
不。
該引擎很大程度上沒有文件記錄,並且不提供廣泛的測試。
在src/example/java
你可以找到一些(醜陋的)例子。