matrixorigin / matrixone

Hyperconverged cloud-edge native database
https://docs.matrixorigin.cn/en
Apache License 2.0
1.76k stars 273 forks source link

virtualize multiple kv engines #1277

Closed XuPeng-SH closed 2 years ago

XuPeng-SH commented 2 years ago

Pebble is equivalent to a table of a database in AOE engine, and the schema of the table has only one string column. Rocksdb with multiple column families is equivalent to a database with multiple tables in AOE, and each table has only one string column. An AOE engine can replace multiple Rocksdb instances, it can be virtualized into multiple KV engine.

Dependency

  1. Support delete operation
  2. In-memory index for search
  3. Integrate some scan and filter operators
  4. 1275, #1276

  5. KV APIs

Pros

  1. One instance with unified memory | thread | io management
  2. Unified engine for row and column-oriented workloads
  3. Low overhead and IT operations compared to multiple stores
  4. Share log with external WAL
  5. Supports atomicity of cross-engine(row and column engine) operations
  6. Support efficient data snapshot, split, relocation, installation
  7. Cloud-native architecture. Log, data, and metadata are clearly layered and can be replaced with cloud-native components
XuPeng-SH commented 2 years ago

aoe dead