Xline v0.4.1: A distributed KV store for metadata management

 

What is Xline? Why do we do Xline?

Xline is a distributed KV storage for metadata management based on the Curp protocol. Most of the existing distributed KV storage adopts the Raft consensus protocol, which requires two RTTs to complete a request. When deployed in a single data center, the latency between nodes is low, so there is no large 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. Curp protocol is designed to solve this problem. It can improve performance by reducing one RTT without command conflicts. Therefore, Xline aims to achieve high-performance data access and strong consistency across data center scenarios.

What new features does V0.4.1 have?

The new version v0.4.1 features, bug fixes and refactoring are as follows:

Function

  • Add observation progress notification mechanism (issue#309), resolved in pr#278.

fix bug

  • Fix a BUG #285, that is, in the integration test, cmd_worker will panic, solved in pr #286.
  • Fix a BUG #291 where the integration test case "test_kv_authorization" would block in some cases, resolved in pr #292.
  • Fix a bug #252 that xline client will work abnormally after terminating xline client by sending SIGINT signal, resolved in pr #255.
  • Fix bugs #284 and #303, the integration test case "test_lock_timeout" will panic, and the verification test of the lock will block, resolved in pr #312.

refactor

  • Refactor `XlineServer`, break some huge structs and methods into smaller ones, improve readability (issue#293), resolved in pr #294.
  • Refactor curp fast read implementation (issue#270), resolved in pr #297.
  • Improve read and write logic of "RocksSnapshot" (issue#263), resolved in pr#264.
  • Refactored watch server implementation (issue#253), resolved in pr#262, #268, #278.
  • Refactor kv server implementation (issue#250), resolved in pr #260.
  • Refactored lease server implementation (issue#251), resolved in pr #276.
  • Use a better way to generate streams (issue#248), resolved in pr #249.

Welcome to participate in the Xline project

We welcome any positive contributions to Xline. At present, some tasks on GitHub do not require a deep understanding of the Curp protocol or the Xline project, but only need to understand the API and Rust language. Even if you are just getting started and want to use the Rust language in an open source project, the community will provide guidance and help to guide you to better participate in the project.

Currently Xline provides the following 4 good first issues:

  1. Improve the readability of boot up errors in Xline #330
  2. [Bug]: Wrong version from help #327
  3. [Refactor]: Merge entries and batch_index #256
  4. Use a unique propose id #219

The construction of Xline requires the participation of everyone who is interested and willing to pay, and we look forward to your joining.

Related Links

· GitHub: https://github.com/datenlord/Xline

Curp related papers:

https://www.usenix.org/system/files/nsdi19-park.pdf

Curp related articles: 

https://medium.com/@datenlord/curp-revisit-the-consensus-protocol-384464be1600

Xline official website: www.xline.cloud

Past recommendation

1.  Xline persistent storage design and implementation

2.  Xline v0.4.0: A distributed KV store for metadata management

3.  From cloud computing to sky computing (1)

4.  From cloud computing to sky computing (2)

Xline is a distributed KV store for metadata management. The Xline project is written in Rust language, and everyone is welcome to participate in our open source project!

GitHub link: https://github.com/datenlord/Xline

Xline official website: www.xline.cloud

Xline Discord: 

https://discord.gg/XyFXGpSfvb

 

Guess you like

Origin blog.csdn.net/DatenLord/article/details/131366924