cncf / sandbox

Applications for Sandbox go here! ⏳📦🧪
Apache License 2.0
131 stars 21 forks source link

[Sandbox] Xline #11

Closed rogercloud closed 1 year ago

rogercloud commented 1 year ago

Application contact emails

jicheng.shi@datenlord.com,pu.wang@datenlord.com, zheng.pan@datenlord.com, tracy.zhu@datenlord.com

Project Summary

A geo-distributed KV store for metadata management

Project Description

Xline is a distributed KV storage for metadata management. Xline makes it possible to manage metadata, such as indexes, permissions, and configurations across multiple clusters. Xline can achieve high-performance data access and strong consistency in cross data center scenarios. Currently, Xline is compatible with the ETCD interface, so that existing ETCD users can seamlessly switch to Xline and get high performance metadata management across multiple clusters.

The Aim of the Project

Data isolation and data fragmentation resulting from cloud barrier become impediments to business growth. The biggest challenge of multi-data center architecture is how to maintain strong data consistency and ensure high performance in the scenarios of multi-data center competition and modification. Traditional single data center solutions cannot meet the availability, performance and consistency requirements of multi-data center scenarios. DatenLord launched the open source distributed KV storage called Xline, which is targeted to multi-data center scenarios. It aims to realize a high-performance metadata management solution across multiple clusters, which is critical for businesses with geo-distributed, and multi-active deployment requirements.

Characteristics of the project

  1. Accelerate data access across clouds by caching hot data in memory, and provide unified data management to automate data migration and backup.
  2. It is the first geo distributed consistency management service based on the WAN consensus protocol. It addresses the challenges of convergence and consistency across clouds.
  3. Unified data management for multi-cluster scenarios, making mutual access, discovery, and modification simple and convenient.
  4. High stability and excellent storage performance; Provide KV interface, Multi-Version Concurrency Control and is compatible with ETCD.

Org repo URL

https://github.com/datenlord

Project repo URL

https://github.com/datenlord/xline

Additional repos

No response

Website URL

No response

Roadmap

https://github.com/datenlord/Xline#roadmap

Roadmap context

No response

Contributing Guide

https://github.com/datenlord/Xline/blob/master/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/datenlord/Xline/blob/master/CODE_OF_CONDUCT.md

Adopters

No response

Contributing or Sponsoring Org

No response

Maintainers file

https://github.com/datenlord/Xline/blob/master/MAINTAINERS

IP Policy

Trademark and accounts

Why CNCF?

The geo-distributed deployment has become increasingly popular nowadays, in which situation Xline is of help in terms of unified management of metadata with high performance and security. We believe that Xline is a missing piece of the CNCF landscape. The project is motivated by challenges observed in cloud-native environments, and will benefit users and organizations that store data in multi-clusters and across clouds. Xline is built naturally for cloud native, compatible with ETCD interface. The success of this project depends on maintaining its vendor-neutrality, as well as keeping collaboration with project adjacent in the ecosystem. Given its mission and relationship with the CNCF projects, we truly believe CNCF, as an open source platform, is a perfect place to host Xline.

We hope to acquire support (e.g., legal assistance in aspects of potential IP and trademark issues) from CNCF, and collaborate with other projects in CNCF to make geo-distributed deployment convenient. We believe the inclusion of Xline in the CNCF ecosystem could help increase the awareness of the project. With the guidance of CNCF, we can follow its procedures and standards, and set attainable goals to refine our open source tools, promote community engagement, and integrate Xline with other cloud native projects.

Benefit to the Landscape

Xline is focused on the infrastructure of cloud native storage, which is vital to the development of cloud native technology. The joining of Xline will help CNCF accelerate the evolution of cloud native storage system in terms of data access in geo-distributed scenarios, in turn benefiting the entire cloud native ecosystem.

First, Xline is fully aligned with the cloud native computing ecosystem because it is compatible with ETCD interface. ETCD enables K8S management in a single cluster, while Xline expands cloud native scenarios to multi clusters and allows users to experience task orchestration across multiple clusters by K8S. Moreover, Xline achieves metadata management among multi-clusters with high performance and security.

Cloud Native 'Fit'

No response

Cloud Native 'Integration'

No response

Cloud Native Overlap

No response

Similar projects

ETCD and ZooKeeper

Product or Service to Project separation

N/A

Project presentations

No response

Project champions

No response

Additional information

Here's the product intro slides

dims commented 1 year ago

@rogercloud looks like some notes on CURP vs RAFT would be a good thing, can you please tell us how they compare? thanks!

rogercloud commented 1 year ago

@dims For the requests don't conflict with each other, CURP takes half time to get the requests committed compared to Raft, because CURP requries only one RTT while Raft requires two. In the multi-cluster or multi-datecenter casese, CURP out-performs Raft. Even in the worst case that every request conflicts with others, CURP's performance is the same as Raft's. You get the benchmark result in our project page.

cathyhongzhang commented 1 year ago

It is mentioned that the geo distributed consistency management service is based on the WAN consensus protocol. Which protocol is it? How does this protocol compare with raft and paxos? Could you list the Pros and cons?

cathyhongzhang commented 1 year ago

I do not see the maintainer's name. Did I miss something?

justincormack commented 1 year ago

Have you done any correctness testing on the project? eg Jepsen or equivalent?

rogercloud commented 1 year ago

@cathyhongzhang The protocol is called CURP, which is published in NSDI'19.

Compared to Raft or Paxos, it takes only 1 RRT to commit a request in the normal case while Raft takes 2. Even for the worst case, every request is changing the same key's value, CUPR's performance is the same as Raft. For more protocol comparison, please refer to the blog. For more performance result, you can refer to the README of the project.

The Pros of CURP:

The Cons of CURP:

rogercloud commented 1 year ago

Have you done any correctness testing on the project? eg Jepsen or equivalent?

We haven't done the serious correctness testing yet like Jepsen.

But we have

And we're planning to apply Jepsen to Xline in the future. We also take chaos engineering into the roadmap to make Xline robust in the production environment.

Phoenix500526 commented 1 year ago

I do not see the maintainer's name. Did I miss something?

@cathyhongzhang Here is the xline maintainer file

nikhita commented 1 year ago

@rogercloud @Phoenix500526 Hi, based on the last TOC Meeting on 2023-05-09, we'd like more information on the following:

rogercloud commented 1 year ago

@rogercloud @Phoenix500526 Hi, based on the last TOC Meeting on 2023-05-09, we'd like more information on the following:

  • Given that: 1) there are concerns around the community's current ability to sustain contributors to etcd (Health of etcd project toc#898), and 2) Xline has only 3 major contributors, we are concerned that we don't have strong enough of an ecosystem to support Xline right now. What are your plans on attracting, retaining contributors and growing them into maintainers?

We're planning or doing the follow the actions to sustain and attract contributors to Xline.

  • Thanks for adding a link to the blogpost that describes the CURP protocal in detail. Please also add this in the main repo so that it's part of official documentation.

The blogpost has been added in the main repo.

  • Please provide additional details on the support you are looking from the CNCF after joining in as a Sandbox project. Additionally, please clarify if you are looking for any legal/IP assistance.

Firstly, the primary motivation for joining CNCF is to collaborate with other projects in CNCF to make geo-distributed deployment convenient. The goal of Xline is to become the basic component of cloud native ecosystem. We will try to replace ETCD in some popular CNCF projects, and this could introduce more users to become Xline Contributors/maintainters. We believe the inclusion of Xline in the CNCF ecosystem, which has one of the biggest and most active open source community, could help increase the awareness of Xline, and make us get connection, collaboration and technical support with other CNCF projects. We want to grow and leverage the expertise from the CNCF to accompany the project on its journey to become more mature. Secondly, CNCF has well-defined project maturity levels, which provides a clear goal and guidance to the project. With the guidance of CNCF, we can follow its procedures and standards, and set attainable goals to refine our tools, promote community engagement, and integrate Xline with other cloud native projects.

We would like to clarify that we do not require any legal or IP assistance. Our project Xline is fully open source. We operate under the guidelines and licenses of the open source community. As for the protocol, the two graduated CNCF projects, Etcd and TiKV, both use Raft and do not involve any patent issues. Curp, which Xline is based on, is born out of Raft and is an extension of Raft by the same author, John Ousterhout, a professor from Stanford University. Therefore, we do not foresee any patent issues and look for any legal/IP assistance.

  • It looks like you presented in the TAG Storage meeting on 26th April (thanks for the proactive engagement with TAGs!). @xing-yang it would be great to hear TAG Storage's feedback and recommendations around Xline joining as a Sandbox project. Additionally, could the recording for Xline's presentation in TAG Storage be made available?

Thank you Nikhita for reaching out to TAG Storage for more information.

xing-yang commented 1 year ago

Hi @nikhita, here's the recording of Xline's presentation at TAG Storage meeting on April 26th. Here are the slides. Let me talk to the other TAG Storage leads and get back to you on our feedback. Thanks.

xing-yang commented 1 year ago

From TAG Storage, we think that Xline is an interesting project that uses a different protocol CURP (compared to RAFT used by etcd). This is a "novel approach to existing functional areas" so it seems to be exactly what a CNCF Sandbox project is for. It will be great if there are already adopters for Xline which will give us some validation, however, we believe that is not a requirement for a Sandbox project. The concern for the lack of contributors/maintainers is real, but that is true across the board for all projects including graduated projects or certain areas within a graduated project. Hopefully by becoming a CNCF project, it will help Xline to attract new contributors. It's interesting to see how this project will evolve in the future. cc @chira001

rogercloud commented 1 year ago

From TAG Storage, we think that Xline is an interesting project that uses a different protocol CURP (compared to RAFT used by etcd). This is a "novel approach to existing functional areas" so it seems to be exactly what a CNCF Sandbox project is for. It will be great if there are already adopters for Xline which will give us some validation, however, we believe that is not a requirement for a Sandbox project. The concern for the lack of contributors/maintainers is real, but that is true across the board for all projects including graduated projects or certain areas within a graduated project. Hopefully by becoming a CNCF project, it will help Xline to attract new contributors. It's interesting to see how this project will evolve in the future. cc @chira001

Thanks for the feedback from the TAG Storage. We also beleive Xline will attract more contributors by becoming a CNCF project.

amye commented 1 year ago

@nikhita - anything else we need?

nikhita commented 1 year ago

@nikhita - anything else we need?

No, we are good here!

nikhita commented 1 year ago

@rogercloud @Phoenix500526 can you clarify which repos are being donated to the CNCF and can you confirm that it is not the whole of the https://github.com/datenlord org?

SandmanDZ commented 1 year ago

@rogercloud @Phoenix500526 can you clarify which repos are being donated to the CNCF and can you confirm that it is not the whole of the https://github.com/datenlord org?

@nikhita Xline applied for joining sandbox. Here is the repo being donated to CNCF: (https://github.com/datenlord/xline). Thanks:-)

amye commented 1 year ago

/vote-sandbox

git-vote[bot] commented 1 year ago

Vote created

@amye has called for a vote on [Sandbox] Xline (#11).

The members of the following teams have binding votes:

Team
@cncf/cncf-toc

Non-binding votes are also appreciated as a sign of support!

How to vote

You can cast your vote by reacting to this comment. The following reactions are supported:

In favor Against Abstain
👍 👎 👀

Please note that voting for multiple options is not allowed and those votes won't be counted.

The vote will be open for 7days. It will pass if at least 66% of the users with binding votes vote In favor 👍. Once it's closed, results will be published here as a new comment.

liangyuanpeng commented 1 year ago

/check-vote

git-vote[bot] commented 1 year ago

Vote status

So far 36.36% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
4 0 0 7

Binding votes (4)

User Vote Timestamp
TheFoxAtWork In favor 2023-06-13 18:04:05.0 +00:00:00
rochaporto In favor 2023-06-13 18:38:12.0 +00:00:00
cathyhongzhang In favor 2023-06-13 18:08:23.0 +00:00:00
nikhita In favor 2023-06-14 8:08:34.0 +00:00:00

Non-binding votes (6)

| User | Vote | Timestamp | | ---- | :---: | :-------: | | pwang7 | In favor | 2023-06-14 0:27:02.0 +00:00:00 | | rogercloud | In favor | 2023-06-14 2:08:02.0 +00:00:00 | | themanforfree | In favor | 2023-06-14 4:12:23.0 +00:00:00 | | iGxnon | In favor | 2023-06-14 4:35:40.0 +00:00:00 | | Phoenix500526 | In favor | 2023-06-14 6:12:25.0 +00:00:00 | | liangyuanpeng | In favor | 2023-06-14 8:54:13.0 +00:00:00 |
RichiH commented 1 year ago

/check-vote

git-vote[bot] commented 1 year ago

Vote status

So far 45.45% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
5 0 0 6

Binding votes (5)

User Vote Timestamp
TheFoxAtWork In favor 2023-06-13 18:04:05.0 +00:00:00
cathyhongzhang In favor 2023-06-13 18:08:23.0 +00:00:00
justincormack In favor 2023-06-16 10:20:23.0 +00:00:00
nikhita In favor 2023-06-14 8:08:34.0 +00:00:00
rochaporto In favor 2023-06-13 18:38:12.0 +00:00:00

Non-binding votes (8)

| User | Vote | Timestamp | | ---- | :---: | :-------: | | pwang7 | In favor | 2023-06-14 0:27:02.0 +00:00:00 | | rogercloud | In favor | 2023-06-14 2:08:02.0 +00:00:00 | | themanforfree | In favor | 2023-06-14 4:12:23.0 +00:00:00 | | iGxnon | In favor | 2023-06-14 4:35:40.0 +00:00:00 | | Phoenix500526 | In favor | 2023-06-14 6:12:25.0 +00:00:00 | | liangyuanpeng | In favor | 2023-06-14 8:54:13.0 +00:00:00 | | myrfy001 | In favor | 2023-06-14 11:36:45.0 +00:00:00 | | chira001 | In favor | 2023-06-15 10:42:07.0 +00:00:00 |
rogercloud commented 1 year ago

Dear TOC members,

We would like to take this opportunity to highlight some key features and innovations of Xline. Xline is an open source distributed KV storage, which is used to manage metadata, and ensure high performance and strong data consistency in cross-cloud and cross-data center scenarios. Its unique features are as follows:

  1. Distributed Multi-Cluster KV Storage Engine: Xline enables seamless data management in multi-cluster environments, providing a simple and convenient approach for mutual access, discovery, and modification of data.

  2. Unified Metadata Management System: By caching hot data in memory, Xline facilitates cross-cloud data access and automates data migration and backup, thus establishing a unified platform for efficient and effective data management.

  3. High-performance Multi-Data Center Consensus Protocol: Xline pioneers a geographically distributed consistency management server based on a wide area network consensus protocol. This breakthrough innovation resolves the challenges associated with cross-cloud integration and ensures data consistency across multiple data centers.

  4. Compatible with ETCD Interface: Xline offers compatibility with the widely adopted ETCD interface, providing users with familiar KV interface and multi-version concurrency control. This compatibility enables smooth utilization and migration within Kubernetes (K8S) environments.

As for Xline’s roadmap, we plan to

  1. add k8s integration making cloud native deployment easier,
  2. add chaos engineering to improve the whole system robustness,
  3. add server nodes membership management to enable the ability to add and remove serving nodes,
  4. add more languages support to the clients sdk.

If you have any questions or comment, please feel free to let us know. Thank you!

rogercloud commented 1 year ago

/check-vote

git-vote[bot] commented 1 year ago

Vote status

So far 72.73% of the users with binding vote are in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
8 0 0 3

Binding votes (8)

User Vote Timestamp
TheFoxAtWork In favor 2023-06-13 18:04:05.0 +00:00:00
rochaporto In favor 2023-06-13 18:38:12.0 +00:00:00
RichiH In favor 2023-06-16 11:22:50.0 +00:00:00
mauilion In favor 2023-06-16 15:29:40.0 +00:00:00
nikhita In favor 2023-06-14 8:08:34.0 +00:00:00
justincormack In favor 2023-06-16 10:20:23.0 +00:00:00
mattfarina In favor 2023-06-16 17:45:15.0 +00:00:00
cathyhongzhang In favor 2023-06-13 18:08:23.0 +00:00:00

Non-binding votes (8)

| User | Vote | Timestamp | | ---- | :---: | :-------: | | pwang7 | In favor | 2023-06-14 0:27:02.0 +00:00:00 | | rogercloud | In favor | 2023-06-14 2:08:02.0 +00:00:00 | | themanforfree | In favor | 2023-06-14 4:12:23.0 +00:00:00 | | iGxnon | In favor | 2023-06-14 4:35:40.0 +00:00:00 | | Phoenix500526 | In favor | 2023-06-14 6:12:25.0 +00:00:00 | | liangyuanpeng | In favor | 2023-06-14 8:54:13.0 +00:00:00 | | myrfy001 | In favor | 2023-06-14 11:36:45.0 +00:00:00 | | chira001 | In favor | 2023-06-15 10:42:07.0 +00:00:00 |
git-vote[bot] commented 1 year ago

Vote closed

The vote passed! 🎉

81.82% of the users with binding vote were in favor (passing threshold: 66%).

Summary

In favor Against Abstain Not voted
9 0 0 2

Binding votes (9)

User Vote Timestamp
@RichiH In favor 2023-06-16 11:22:50.0 +00:00:00
@rochaporto In favor 2023-06-13 18:38:12.0 +00:00:00
@nikhita In favor 2023-06-14 8:08:34.0 +00:00:00
@mattfarina In favor 2023-06-16 17:45:15.0 +00:00:00
@TheFoxAtWork In favor 2023-06-13 18:04:05.0 +00:00:00
@erinaboyd In favor 2023-06-20 13:12:11.0 +00:00:00
@cathyhongzhang In favor 2023-06-13 18:08:23.0 +00:00:00
@mauilion In favor 2023-06-16 15:29:40.0 +00:00:00
@justincormack In favor 2023-06-16 10:20:23.0 +00:00:00

Non-binding votes (8)

| User | Vote | Timestamp | | ---- | :---: | :-------: | | @pwang7 | In favor | 2023-06-14 0:27:02.0 +00:00:00 | | @rogercloud | In favor | 2023-06-14 2:08:02.0 +00:00:00 | | @themanforfree | In favor | 2023-06-14 4:12:23.0 +00:00:00 | | @iGxnon | In favor | 2023-06-14 4:35:40.0 +00:00:00 | | @Phoenix500526 | In favor | 2023-06-14 6:12:25.0 +00:00:00 | | @liangyuanpeng | In favor | 2023-06-14 8:54:13.0 +00:00:00 | | @myrfy001 | In favor | 2023-06-14 11:36:45.0 +00:00:00 | | @chira001 | In favor | 2023-06-15 10:42:07.0 +00:00:00 |
amye commented 1 year ago

Closing with approved, new onboarding issue: https://github.com/cncf/sandbox/issues/156