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

Proposal: Trace validation roadmap #201

Open
joshuazh-x opened this issue May 30, 2024 · 2 comments
Open

Proposal: Trace validation roadmap #201

joshuazh-x opened this issue May 30, 2024 · 2 comments

Comments

@joshuazh-x
Copy link
Contributor

I'd like to propose some ideas for improving our raft implementation's quality assurance using trace validation. A draft document is prepared to outline several potential improvements to achieve this.

I'd appreciate your valuable feedback and comments helping us solidify this into a solid roadmap.

You can find the proposal document in https://docs.google.com/document/d/1oaubSgCXouT6qQ5tawup49G01loBKn4tWGMokB3ejLM/edit#heading=h.c5tbkh30ka1f.

@joshuazh-x
Copy link
Contributor Author

@lemmy
Copy link

lemmy commented May 30, 2024

Automated trace validation tests to verify correctness of etcd-io/raft

The CCF project has already figured out most of the bits and bobs to run trace validation and model checking as part of Azure pipelines and Github workflows:
https://github.com/microsoft/CCF/blob/main/.azure-pipelines-templates/model_checking.yml
https://github.com/microsoft/CCF/blob/main/.github/workflows/tlaplus.yml

Verification of linearizability

The CCF project validates traces of KV reads and writes against its client-centric consistency specification. This work should directly translate. Other definitions can be taken over from https://github.com/lorin/tla-linearizability.

Improve trace validation test performance

Validation time should increase linearly with the length of the log, unless non-determinism causes state-space explosion along the log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants