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

Solve the DQlite issues #1

Closed
sparshev opened this issue May 12, 2022 · 1 comment · Fixed by #19
Closed

Solve the DQlite issues #1

sparshev opened this issue May 12, 2022 · 1 comment · Fixed by #19
Assignees
Labels
enhancement New feature or request

Comments

@sparshev
Copy link
Collaborator

sparshev commented May 12, 2022

In general DQLite was a good start for the project, but it seems we need to move on. There is a number of issues with using DQLite:

  • Raft-based database growth
  • Auth in the cluster is questionable
  • Support of MacOS and Windows not to mention the other systems looks like a pain
  • Performance is far from good
  • Splitbrain concern is unclear
  • C-nature of the dependencies makes it hard for cross-platform build process

So I think it will be better to switch to using sqlite for the node with a custom cluster communication protocol. The info distribution could be done via websocket and the nodes are establishing those connections to a limited number of neighbors to properly auth in the cluster via certificate and sign their requests to verify based on pubkey.

There is still a question how vote process will look like, and how the future web interface will collect the cluster information, but probably it's doable.

Expected Behaviour

DQLite need to be removed and replaced by sqlite and custom websocket-based cluster communication protocol.

Actual Behaviour

For now the Fish uses a number of C-based dependencies including DQLite

@sparshev sparshev added the enhancement New feature or request label May 12, 2022
@sparshev sparshev self-assigned this May 12, 2022
@sparshev sparshev mentioned this issue May 16, 2022
10 tasks
@sparshev sparshev linked a pull request May 16, 2022 that will close this issue
10 tasks
@sparshev
Copy link
Collaborator Author

Ok this ticket is finally closed, the only issue was not resolved is cluster sync - but since it not worked well in dqlite than it's a separated one #30.

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

Successfully merging a pull request may close this issue.

1 participant