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

All Oracle delta streams are applied via proposals. #2463

Merged
merged 6 commits into from
Jun 29, 2018

Conversation

manishrjain
Copy link
Contributor

@manishrjain manishrjain commented Jun 29, 2018

We should stop having leaders and followers receive transaction status updates from Zero directly and apply them to their state. This causes multiple race conditions and the behavior becomes indeterministic with edge cases. Instead, we have the leaders receive the updates, and propose them to their corresponding group. Proposals flow through Raft and get applied via Node.Run in a serial manner.

  • Only print connection failure once, not every run.
  • Directly propose OracleDelta, instead of proposing one TxnContext per entry in OracleDelta.
  • Batch up multiple OracleDelta receives from Zero into one with smart batching into one proposal to the group. This would amortize the cost of proposals.

This change is Reviewable

@manishrjain manishrjain merged commit 30575a8 into master Jun 29, 2018
@manishrjain manishrjain deleted the mrjn/txn-propose branch June 29, 2018 01:26
dna2github pushed a commit to dna2fork/dgraph that referenced this pull request Jul 19, 2019
We should stop having leaders and followers receive transaction status updates from Zero directly and apply them to their state. This causes multiple race conditions and the behavior becomes indeterministic with edge cases. Instead, we have the leaders receive the updates, and propose them to their corresponding group. Proposals flow through Raft and get applied via `Node.Run` in a serial manner.

- Only print connection failure once, not every run.
- Directly propose OracleDelta, instead of proposing one TxnContext per entry in OracleDelta.
- Batch up multiple OracleDelta receives from Zero into one with smart batching into one proposal to the group. This would amortize the cost of proposals.
- Remove unnecessary trace: "In run mutation"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant