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

Speculative execution support #2249

Merged
merged 85 commits into from
Mar 1, 2022
Merged

Speculative execution support #2249

merged 85 commits into from
Mar 1, 2022

Conversation

damip
Copy link
Member

@damip damip commented Feb 4, 2022

Intro

This is a rewrite of the execution system following the spec we already agreed upon, as well as good practices and with the big refactoring constraints in mind.

Goals

  • enable speculative execution
  • get ready for ledger unification

Practices

  • no async because it's not needed
  • short functions (max 50 lines of code)
  • no panics, unless described
  • crates split between worker and exports
  • thorough documentation
    • function docs
    • algorithm description
    • file-level documentation
    • crate-level documentation
  • test exports
  • unit and functional tests: to be added in a followup Add tests for massa execution #2296
  • use genericity whenever possible
  • clippy lints

Checklist

  • implement speculative execution
  • split execution into worker/exports crates
  • create massa-ledger crate
  • integrate execution and ledger into the existing program
  • repair bootstrap tests
  • repair consensus tests
  • improve documentation
  • try on labnet
  • reactivate execution tests => will be done in a followup Add tests for massa execution #2296
  • add specific tests => will be done in the followup Add tests for massa execution #2296

@damip damip self-assigned this Feb 4, 2022
gterzian
gterzian previously approved these changes Feb 28, 2022
Copy link
Contributor

@gterzian gterzian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I've looked more at the various ledger structures, and the request queue. Which look good overall. Potential follow-up noted at #2348

adrien-zinger
adrien-zinger previously approved these changes Mar 1, 2022
@damip
Copy link
Member Author

damip commented Mar 1, 2022

bors merge

bors bot added a commit that referenced this pull request Mar 1, 2022
2249: Speculative execution support r=damip a=damip

# Intro

This is a rewrite of the execution system following the spec we already agreed upon, as well as good practices and with the big refactoring constraints in mind.

# Goals

* [x] enable speculative execution
* [x] get ready for ledger unification

# Practices

* [x] no async because it's not needed
* [x] short functions (max 50 lines of code)
* [x] no panics, unless described
* crates split between worker and exports
  * [x] execution
  * [x] ledger: it will be refactored for on-disk storage, we will split it then => #2342
* thorough documentation
  * [x] function docs
  * [x] algorithm description
  * [x] file-level documentation
  * [x] crate-level documentation
* [x] test exports
* [x] unit and functional tests: to be added in a followup #2296
* [x] use genericity whenever possible
* [x] clippy lints

# Checklist

* [x] implement speculative execution
* [x] split execution into worker/exports crates
* [x] create massa-ledger crate
* [x] integrate execution and ledger into the existing program
* [x] repair bootstrap tests
* [x] repair consensus tests
* [x] improve documentation
* [x] try on labnet
* [x] reactivate execution tests => will be done in a followup #2296
* [x] add specific tests => will be done in the followup #2296


Co-authored-by: Damir Vodenicarevic <[email protected]>
Co-authored-by: damip <[email protected]>
@damip
Copy link
Member Author

damip commented Mar 1, 2022

Thank you @adrien-zinger and @gterzian for the review

@bors
Copy link
Contributor

bors bot commented Mar 1, 2022

Build failed:

AureliaDolo
AureliaDolo previously approved these changes Mar 1, 2022
@damip
Copy link
Member Author

damip commented Mar 1, 2022

bors merge

bors bot added a commit that referenced this pull request Mar 1, 2022
2249: Speculative execution support r=damip a=damip

# Intro

This is a rewrite of the execution system following the spec we already agreed upon, as well as good practices and with the big refactoring constraints in mind.

# Goals

* [x] enable speculative execution
* [x] get ready for ledger unification

# Practices

* [x] no async because it's not needed
* [x] short functions (max 50 lines of code)
* [x] no panics, unless described
* crates split between worker and exports
  * [x] execution
  * [x] ledger: it will be refactored for on-disk storage, we will split it then => #2342
* thorough documentation
  * [x] function docs
  * [x] algorithm description
  * [x] file-level documentation
  * [x] crate-level documentation
* [x] test exports
* [x] unit and functional tests: to be added in a followup #2296
* [x] use genericity whenever possible
* [x] clippy lints

# Checklist

* [x] implement speculative execution
* [x] split execution into worker/exports crates
* [x] create massa-ledger crate
* [x] integrate execution and ledger into the existing program
* [x] repair bootstrap tests
* [x] repair consensus tests
* [x] improve documentation
* [x] try on labnet
* [x] reactivate execution tests => will be done in a followup #2296
* [x] add specific tests => will be done in the followup #2296


Co-authored-by: Damir Vodenicarevic <[email protected]>
Co-authored-by: damip <[email protected]>
@bors
Copy link
Contributor

bors bot commented Mar 1, 2022

Build failed:

@damip
Copy link
Member Author

damip commented Mar 1, 2022

bors merge

bors bot added a commit that referenced this pull request Mar 1, 2022
2249: Speculative execution support r=damip a=damip

# Intro

This is a rewrite of the execution system following the spec we already agreed upon, as well as good practices and with the big refactoring constraints in mind.

# Goals

* [x] enable speculative execution
* [x] get ready for ledger unification

# Practices

* [x] no async because it's not needed
* [x] short functions (max 50 lines of code)
* [x] no panics, unless described
* crates split between worker and exports
  * [x] execution
  * [x] ledger: it will be refactored for on-disk storage, we will split it then => #2342
* thorough documentation
  * [x] function docs
  * [x] algorithm description
  * [x] file-level documentation
  * [x] crate-level documentation
* [x] test exports
* [x] unit and functional tests: to be added in a followup #2296
* [x] use genericity whenever possible
* [x] clippy lints

# Checklist

* [x] implement speculative execution
* [x] split execution into worker/exports crates
* [x] create massa-ledger crate
* [x] integrate execution and ledger into the existing program
* [x] repair bootstrap tests
* [x] repair consensus tests
* [x] improve documentation
* [x] try on labnet
* [x] reactivate execution tests => will be done in a followup #2296
* [x] add specific tests => will be done in the followup #2296


Co-authored-by: Damir Vodenicarevic <[email protected]>
Co-authored-by: damip <[email protected]>
@bors
Copy link
Contributor

bors bot commented Mar 1, 2022

Build failed:

@damip damip dismissed stale reviews from AureliaDolo, adrien-zinger, and gterzian via 5f4b91b March 1, 2022 19:21
@qdrn qdrn self-requested a review March 1, 2022 19:31
@damip
Copy link
Member Author

damip commented Mar 1, 2022

bors merge

@bors
Copy link
Contributor

bors bot commented Mar 1, 2022

Build succeeded:

@bors bors bot merged commit 5c8f019 into main Mar 1, 2022
@bors bors bot deleted the time_curor_vm branch March 1, 2022 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

6 participants