You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently parallel execution abandons a speculative VM execution of a transaction immediately when it encounters a dependency (i.e. an entry marked as Estimate in the shared MVMemory data-structure). This is an optimization that avoids aborts, as the transaction is then re-executed after the dependency is resolved. However, the re-execution starts from scratch, when in theory, it could have continued exactly from the prior state when the dependency was observed.
Way to solve this could involve some continuations / async programming and managing suspended execution tasks alongside dependencies in executor/scheduler. Exact performance gains need to be investigated, but it's promising.
The text was updated successfully, but these errors were encountered:
Currently parallel execution abandons a speculative VM execution of a transaction immediately when it encounters a dependency (i.e. an entry marked as Estimate in the shared MVMemory data-structure). This is an optimization that avoids aborts, as the transaction is then re-executed after the dependency is resolved. However, the re-execution starts from scratch, when in theory, it could have continued exactly from the prior state when the dependency was observed.
Way to solve this could involve some continuations / async programming and managing suspended execution tasks alongside dependencies in executor/scheduler. Exact performance gains need to be investigated, but it's promising.
The text was updated successfully, but these errors were encountered: