Similar to 快手K-Engine高性能异构存储引擎演进之路. Kuaishou high performance storage engine. named K-Engine. This presentation describe the evolution of database. (20)
9. K-Engine Family
• K-engine has serveral storage-engines: b+tree/lsm/hash/…
• No silver-bullet => engine_api unify underlayer engines and simply
to be choosen by options
14. K-Engine KVDK on PMEM
Why we do it?
How to use it?
What is KVDK? 01
02
03
How
➢Key-value store becomes a critical building
block for today’s applications. NoSQL market
estimated to reach $22.08 billion by 2026.
➢PMEM dramatically improves IO performance,
but existing persistent KV engines are
designed for hard drive, and so they are hard
to benefit from it.
➢Hope to build a vibrant open-source
community to collaborate with more customers
to address their pain points.
➢It is a persistent key-value store library (c++)
designed for Intel Optane PMEM (Persistent
MEMory) and Xeon platform.
➢It is not just doing get/set, it provides a full-featured
implementation of key-value store.
➢Performance is always the top priority of KVDK.
➢It is a c++ library, and we will support more
language bindings.
➢Implement a Rocksdb-like API as far as possible,
because Rocksdb is a de-facto standard of
persistent KV store.
➢Provide benchmark tool for you to evaluate the
performance on your own platform.
➢There are several examples to demonstrate how to
use KVDK in different scenarios.
15. K-Engine KVDK on PMEM
Segment Segment Segment
…
Cache of
allocation
threads
Pool
PMEM
Space
➢No contention among
allocation threads
➢Sequential access optimized
➢No PMEM Access for
allocation/free
Design
Considerations
17. K-Engine KVDK in GraphDB
How we itergrated KVDK ? and replace RocksDB !
remove redundant linux file-system
KVDK is fast enough, we developed a new faster RPC framework to conform.
gRpc Protocol
Graph Service
Engine (RocksDB)
Legacy GraphDB Server
SSD Intel PMEM
Linux VFS (fsdx)
GraphDB Server with KVDK
gRpc Protocol
Graph Service
KVDK
Intel PMEM
18. K-Engine KVDK in GraphDB
Encode Vertex and Edges into KVDK
KVDK is capable of supplying kv-interface and orginized in『Collection』.
Sorted collection can iterate keys in asec order.
19. K-Engine KVDK in GraphDB
KVDK is faster 4~10x than RocksDB
KVDK has no latency peak and stable.