What’s the difference between KVStore and KVEngine in NebulaGraph Database?

51 Views Asked by At

Nebula Graph version: 3.3

I’ve been checking the source code of the NebulaGraph Database and have gotten confused about the relationship and the difference between KVStore and KVEngine. KVEngine implements RocksEngine.cpp to access rocksdb, while KVStore seems more like a logical concept, and all kinds of CRUD are executed through KVStore. So, how KVstore interacts with the underlying database?

1

There are 1 best solutions below

0
On

Good question.

  • KVEngine is the abstract of the key-value engine per single(server) storage instance, and RocksEngine is one of its implementations.
  • KVStore is the abstract of the general Storage layer (as you mentioned, logical), i.e. the Distributed Consensus + KVEngine together construct the KVStore. NebulaStore is one of its implementations.