Xline: A geo-distributed KV store for metadata management
What is it?
Xline is a geo-distributed KV store for metadata management, which is based on the Curp protocol.
Why make it?
Existing distributed KV stores mostly adopt the Raft consensus protocol, which takes two RTTs to complete a request. When deployed in a single data center, the latency between nodes is low, so it will not have a big impact on performance.
However, when deployed across data centers, the latency between nodes may be tens or hundreds of milliseconds, at which point the Raft protocol will become a performance bottleneck. The Curp protocol is designed to solve this problem. It can reduce one RTT when commands do not conflict, thus improving performance.
What does it provide?
- Etcd Compatible API
KvserviceWatchserviceAuthservice
- basic implementation of the
Curpprotocol - basic
Xlineclient (useCurpdirectly) - benchmark tool
Performance Comparison
We compared Xline with Etcd in a simulated multi-cluster environment. The throughput of Xline is 2 times that of Etcd in the 100k key throuput(ops) test case.
Details of the deployment and performance test results is here. It's easy to tell Xline has a better performance than Etcd in a geo-distributed multi-cluster environment.
Note
In this release, we only provide binary files for X86\_64 linux. Other platforms need to be compiled by yourself. we will add more support in the future.
Links
- GitHub: https://github.com/datenlord/Xline
- Paper of Curp: https://www.usenix.org/system/files/nsdi19-park.pdf