bor icon indicating copy to clipboard operation
bor copied to clipboard

Block-stm optimization

Open cffls opened this issue 3 years ago • 1 comments

Added tests for executor and two major 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.

Sample test output:

go test -v -run TestMoreConflicts $(go list ./... | grep blockstm)
=== RUN   TestMoreConflicts
=== PAUSE TestMoreConflicts
=== CONT  TestMoreConflicts
INFO [08-08|12:59:02.707] Executing block                          numTx=10 numRead=20 numWrite=20 numNonIO=100
DEBUG[08-08|12:59:02.710] blockstm exec summary                    execs=27 success=18 aborts=9 validations=18 failures=8 #tasks/#execs=37.04%
exec duration 4.018705ms, serial duration 2.44006ms, time reduced -1.578645ms -64.70%, ❌
INFO [08-08|12:59:02.711] Executing block                          numTx=10 numRead=20 numWrite=20 numNonIO=500
DEBUG[08-08|12:59:02.719] blockstm exec summary                    execs=23 success=17 aborts=6 validations=18 failures=7 #tasks/#execs=43.48%
exec duration 8.508673ms, serial duration 9.146504ms, time reduced 637.831µs 6.97%, ✅
INFO [08-08|12:59:02.720] Executing block                          numTx=10 numRead=20 numWrite=100 numNonIO=100
DEBUG[08-08|12:59:02.725] blockstm exec summary                    execs=28 success=19 aborts=9 validations=19 failures=9 #tasks/#execs=35.71%
exec duration 7.057344ms, serial duration 2.989481ms, time reduced -4.067863ms -136.07%, ❌
INFO [08-08|12:59:02.727] Executing block                          numTx=10 numRead=20 numWrite=100 numNonIO=500
DEBUG[08-08|12:59:02.740] blockstm exec summary                    execs=30 success=18 aborts=12 validations=18 failures=8 #tasks/#execs=33.33%
exec duration 15.895153ms, serial duration 10.234288ms, time reduced -5.660865ms -55.31%, ❌
INFO [08-08|12:59:02.744] Executing block                          numTx=10 numRead=20 numWrite=200 numNonIO=100
DEBUG[08-08|12:59:02.749] blockstm exec summary                    execs=26 success=19 aborts=7  validations=19 failures=9 #tasks/#execs=38.46%
exec duration 10.0053ms, serial duration 3.62166ms, time reduced -6.38364ms -176.26%, ❌

cffls avatar Aug 08 '22 20:08 cffls

Codecov Report

:exclamation: No coverage uploaded for pull request base (block-stm@98f8b19). Click here to learn what that means. The diff coverage is n/a.

@@             Coverage Diff              @@
##             block-stm     #490   +/-   ##
============================================
  Coverage             ?   56.20%           
============================================
  Files                ?      608           
  Lines                ?    70462           
  Branches             ?        0           
============================================
  Hits                 ?    39604           
  Misses               ?    27448           
  Partials             ?     3410           

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

codecov-commenter avatar Aug 10 '22 01:08 codecov-commenter