2020-12-13 19:14:42 +01:00
2020-12-07 23:50:03 +01:00
2020-12-07 22:11:36 +01:00
2020-12-13 19:14:42 +01:00
2020-12-07 22:15:18 +01:00

CavalliumDB Engine

A very simple wrapper for RocksDB and Lucene, with gRPC and direct connections.

This is not a database, but only a wrapper for Lucene Core and RocksDB, with a bit of abstraction.

Features

RocksDB Key-Value NoSQL database engine

  • Snapshots
  • Multi-column databases
  • WAL and corruption recovery strategies
  • Multiple data types:
    • Bytes (Singleton)
    • Maps of bytes (Dictionary)
    • Maps of maps of bytes (Deep dictionary)
    • Sets of bytes (Dictionary without values)
    • Maps of sets of bytes (Deep dictionary without values)

Apache Lucene Core indexing library

  • Documents structure
  • Sorting
    • Ascending and descending
    • Numeric or non-numeric
  • Searching
    • Nested search terms
    • Combined search terms
    • Fuzzy text search
    • Coordinates, integers, longs, strings, text
  • Indicization and analysis
    • N-gram
    • Edge N-gram
    • English words
    • Stemming
    • Stopwords removal
  • Results filtering
  • Snapshots

F.A.Q.

Why is it so difficult?

This is not a DMBS.

This is an engine on which a DBMS can be built upon. For this reason it's very difficult to use it directly without using it through abstraction layers.

Can I use objects in the database?

Yes you must serialize/deserialize them using a library of your choice.

Why there is a snapshot function for each database part?

Since RocksDB and lucene indices are different instances, every instance has its own snapshot function.

To have a single snapshot you must implement it as a collection of sub-snapshots in your DBMS.

Is CavalliumDB Engine suitable for your project?

No. This engine is largely undocumented, and it doesn't provide extensive tests on its methods.

Description
Database engine for Java
Readme 9 MiB
Languages
Java 100%