Commit graph

9 commits

Author SHA1 Message Date
Pratik Patil
c559619c80
fix bug: should use Lock when mutating the flag (#1141)
* should use Lock when mutating the flag

* same problem in MVHashMap.Write

* hole the rlock while reading WriteCell

---------

Co-authored-by: zhiqiangxu <652732310@qq.com>
2024-01-22 20:47:47 +05:30
Arpit Temani
08b4937cb6 fix lint 2023-09-23 16:26:23 +05:30
marcello33
f3ffacf2d7 dev: fix: most of wsl lint issues 2023-06-15 15:48:26 +02:00
Jerry
f96c668baf
Disable reverted tx optimization in block-stm validation (#891)
A reverted transaction, X, can incorrectly write to a slot, which might be read by another transaction, Y. If we skip checking states written by X, then Y might end up with reading the wrong value and we won't be able to detect this error.
2023-06-06 21:36:36 -07:00
Jerry
f2c48fed0b
Remove dependency when a transaction is reverted
If a transaction is reverted, its write records should be excluded from
dependency calculation.
2023-05-11 09:09:33 -07:00
Jerry
3a87233a9c Change functions of Key from pointer to value reference 2022-11-14 16:49:18 -08:00
Jerry
c36ad88aec Block-stm optimization
Added tests for executor and some improvements:

1. Add a dependency map during execution. This will prevent aborted tasks from being sent for execution immedaitely after failure.
2. Change the key of MVHashMap from string to a byte array. This will reduce time to convert byte slices to strings.
3. Use sync.Map to reduce the time spent in global mutex.
4. Skip applying intermediate states.
5. Estimate dependency when an execution fails without dependency information.
6. Divide execution task queue into two separate queues. One for relatively certain transactions, and the other for speculative future transactions.
7. Setting dependencies of Txs coming from the same sender before starting parallel execution.
8. Process results in their semantic order (transaction index) instead of the order when they arrive. Replace result channel with a priority queue.
2022-09-28 16:12:20 -07:00
Jerry
bbcc6dd0ad Parallel state processor 2022-09-28 16:12:20 -07:00
Jerry
b1ba97c4f5 Create MVHashMap and use it StateDB 2022-09-28 16:12:20 -07:00