Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sandbox] Xline #11

Closed
2 tasks done
rogercloud opened this issue Nov 18, 2022 · 28 comments
Closed
2 tasks done

[Sandbox] Xline #11

rogercloud opened this issue Nov 18, 2022 · 28 comments
Assignees
Labels
Approved This is an approved sandbox project. gitvote Storage

Comments

@rogercloud
Copy link

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

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

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

@rogercloud rogercloud added the New New Application label Nov 18, 2022
@dims
Copy link
Member

dims commented Jan 6, 2023

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

@rogercloud
Copy link
Author

@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
Copy link

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
Copy link

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

@justincormack
Copy link

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

@nikhita nikhita self-assigned this May 9, 2023
@TheFoxAtWork TheFoxAtWork added Need-info The TOC has requested more information from the project. and removed New New Application labels May 9, 2023
@rogercloud
Copy link
Author

rogercloud commented May 9, 2023

@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:

  • Easy to implement.
  • Geo-distributed friendly.

The Cons of CURP:

  • More information is required for the requests, such as whether two requests conflict with each other. For KV store, it's easy to tell.

@rogercloud
Copy link
Author

rogercloud commented May 9, 2023

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

  • a validation test to coverage the ETCD compatible APIs to make sure Xline performs the same as ETCD,
  • and a formal verification of CURP protocol, please refer to TLA+ file.

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
Copy link

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

@cathyhongzhang Here is the xline maintainer file

@nikhita
Copy link
Member

nikhita commented May 11, 2023

@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?

  • 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.

  • 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.

  • 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?

@rogercloud
Copy link
Author

rogercloud commented May 11, 2023

@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.

  • Make the barrier lower for new contributors through improving architecture design documentation to ensure that novices can easily track the history of the project and get started as soon as possible.

  • Xline is a Rust language project that can attract Rust enthusiasts to contribute. We have some tasks that do not require an in-depth understanding of Curp protocol or this project, but only the APIs and Rust languages. It is friendly for those who want to get started and use Rust in an open-source project.

  • Raise the visibility and awareness of the project, e.g., hold a monthly community meeting to discuss the latest designs and updates. We will actively seek out potential contributors and provide resources and support to help them get involved with the project.

  • Provide mentorship programs to support the growth of contributors into maintainers. We plan to prioritize the creation of a welcoming and inclusive community culture to ensure that all contributors feel valued and supported, and is willing to grow with the project.

  • 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
Copy link

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
Copy link

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
Copy link
Author

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
Copy link

amye commented Jun 7, 2023

@nikhita - anything else we need?

@nikhita
Copy link
Member

nikhita commented Jun 13, 2023

@nikhita - anything else we need?

No, we are good here!

@nikhita nikhita added Returning This application has been updated and is read for second review. and removed Need-info The TOC has requested more information from the project. labels Jun 13, 2023
@nikhita
Copy link
Member

nikhita commented Jun 13, 2023

@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
Copy link

@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
Copy link

amye commented Jun 13, 2023

/vote-sandbox

@git-vote
Copy link

git-vote bot commented Jun 13, 2023

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
Copy link

/check-vote

@git-vote
Copy link

git-vote bot commented Jun 14, 2023

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
Copy link

RichiH commented Jun 16, 2023

/check-vote

@git-vote
Copy link

git-vote bot commented Jun 16, 2023

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
Copy link
Author

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
Copy link
Author

/check-vote

@git-vote
Copy link

git-vote bot commented Jun 18, 2023

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
Copy link

git-vote bot commented Jun 20, 2023

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 amye added Approved This is an approved sandbox project. and removed Returning This application has been updated and is read for second review. labels Jun 21, 2023
@amye amye closed this as completed Jun 21, 2023
@amye
Copy link

amye commented Jun 21, 2023

Closing with approved, new onboarding issue: #156

@git-vote git-vote bot added the gitvote label May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved This is an approved sandbox project. gitvote Storage
Projects
Status: Done
Development

No branches or pull requests