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

Alternative to ETCD - POC #405

Open
anandrgitnirman opened this issue Sep 23, 2019 · 5 comments
Open

Alternative to ETCD - POC #405

anandrgitnirman opened this issue Sep 23, 2019 · 5 comments
Labels
enhancement New feature or request

Comments

@anandrgitnirman
Copy link
Contributor

anandrgitnirman commented Sep 23, 2019

Do a quick POC to have an alternatiive storage for channel state , we are looking at redis / cockraoch DB . We are also looking at making the Daemon even more generic to support an alternate storage

@stellarspot
Copy link
Contributor

There is a description why ETCD has been chosen as the payment channel data storage:
https://github.com/singnet/wiki/blob/master/payment-channel/PaymentChannelStorage.md

The main idea was the data storage for payment channel need to satisfy Consistency requirements in CAP theorem.

What side of the CAP theorem does Redis satisfy?

The quick search gave me a link www.credera.com

Redis Cluster was designed as a general solution for high availability and horizontal scalability for all users of the database. As such, it was designed from the ground up with the major value additions to Redis in mind: performance and a strong data model. Because of this, Redis Cluster implements neither true availability nor consistency of the CAP theorem.

@astroseger
Copy link
Collaborator

astroseger commented Sep 23, 2019

@anandrgitnirman Why ETCD is a problem?

The architecture of current system is based on assumption that storage has strong consistency. If we use storage without strong consistency then we open ourselves to different kinds of attacks and troubles (the simplest problem --- cluster partition). It seems you cannot solve these problems without strong consistency.

@anandrgitnirman
Copy link
Contributor Author

@astroseger , As a platform we are looking at enabling other Storage systems, giving the service provider more flexibility , this excercise is only a POC to see how compatible we are to allow for different storages ( Agree , there needs to be strong consistency) .

@anandrgitnirman anandrgitnirman changed the title Use Redis - Alternative to ETCD - POC Alternative to ETCD - POC Sep 24, 2019
@anandrgitnirman
Copy link
Contributor Author

There is a description why ETCD has been chosen as the payment channel data storage:
https://github.com/singnet/wiki/blob/master/payment-channel/PaymentChannelStorage.md

The main idea was the data storage for payment channel need to satisfy Consistency requirements in CAP theorem.

What side of the CAP theorem does Redis satisfy?

The quick search gave me a link www.credera.com

Redis Cluster was designed as a general solution for high availability and horizontal scalability for all users of the database. As such, it was designed from the ground up with the major value additions to Redis in mind: performance and a strong data model. Because of this, Redis Cluster implements neither true availability nor consistency of the CAP theorem.

hi @stellarspot , thanks for Sharing all the details , I have changed the description , goal is to also see how easy it is to on board a new DB ( totally agree with you and @astroseger ) that we need to strong consistency

@vsbogd
Copy link
Member

vsbogd commented Sep 24, 2019

Different service providers may have different requirements on performance and availability. Some of them may even not need distributed databases. And using another db instead of ETCD may significantly simplify setup for them. So adding different db integrations to daemon makes sense.

@semyon-dev semyon-dev added the enhancement New feature or request label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants