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

Implement RaftNode.replicate(List<Object> operations) #40

Open
metanet opened this issue Mar 5, 2023 · 4 comments
Open

Implement RaftNode.replicate(List<Object> operations) #40

metanet opened this issue Mar 5, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@metanet
Copy link
Collaborator

metanet commented Mar 5, 2023

Explore Implementing a new API to allow users to replicate an operation batch rather than one operation. This might be beneficial for performance reasons if a customer batches operations before committing them via Raft.

@metanet metanet added the enhancement New feature or request label Mar 5, 2023
@metanet metanet self-assigned this Apr 5, 2023
@schiemon
Copy link

schiemon commented Jun 11, 2024

Hi @metanet ,
are you still working on this issue, or is it available for contributions? :)

@metanet
Copy link
Collaborator Author

metanet commented Jun 14, 2024

Go for it. I am not working on it at the moment.

@schiemon
Copy link

schiemon commented Jun 23, 2024

@metanet We are talking here about atomic batches, right? So one operation in the batch is committed iff all the other operations are committed.
If that is the case, then I would go with introducing a new type of operation, a BatchOperation, that stores the list of operations of a batch. The commitment status and log position of such a BatchOperation is then equal to the commitment status and position for all its containing operations. For applying a BatchOperation, we then would require the state machine to do this also atomically. As far as I see it, with that we would get atomicity for such a batch. What do you think?

@metanet
Copy link
Collaborator Author

metanet commented Jun 24, 2024

Yup, this is exactly what i had in mind. The easiest way to atomically commit a list of operations is to wrap them in one object and commit it.

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

2 participants