CavalliumDBEngine
1.0.0
使用 Project Reactor 用 Java (17+) 编写的反应式数据库引擎。
该库提供了键值存储和搜索引擎的基本反应式抽象和实现。
有四种现成的实现,两种用于键值存储,两种用于搜索引擎,但可以添加更多实现。
可以使用高效的自定义序列化格式对查询进行序列化和反序列化
数据库抽象可以通过使用RocksDB JNI和Netty 5缓冲区避免多次复制数据
可以使用生成 Java 16 记录的数据生成器:它允许您通过使用 .yaml 文件定义字段来生成自定义记录。
生成器还在编译时为每个自定义记录生成专用序列化器、反序列化器和升级器的源。
键值存储抽象允许您通过自动使用自定义升级程序和自定义反序列化器来透明地反序列化旧版本的数据。
数据生成器可以在数据生成器存储库中找到。
RocksDB 键值存储
Apache Lucene 核心索引库
为什么这么难用?
这不是一个数据库管理系统。
这是一个可以构建 DBMS 的引擎;因此,如果不在上面构建另一个抽象层,就很难直接使用。
我可以使用对象而不是字节数组吗?
是的,您必须使用您选择的库对它们进行序列化/反序列化。
CodecSerializer 允许您使用每个数据版本的编解码器来实现版本化数据。请注意,它为每个值多使用 1 到 4 个字节来存储版本。
为什么每个数据库部分都有快照功能?
由于 RocksDB 和 lucene 索引是不同的库,因此您无法自动拍摄每个数据库的快照。
通用快照必须作为每个数据库快照的集合来实现。
CavalliumDB 引擎适合您的项目吗?
不。
该引擎很大程度上没有文档记录,并且不提供广泛的测试。
在src/example/java
中你可以找到一些(丑陋的)例子。