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

Splitstore Enhanchements #6474

Merged
merged 197 commits into from
Jul 13, 2021
Merged

Splitstore Enhanchements #6474

merged 197 commits into from
Jul 13, 2021

Commits on Jul 4, 2021

  1. noop blockstore

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    4d3c73f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5cca29d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    04f2e10 View commit details
    Browse the repository at this point in the history
  4. implement chain walking

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    e3cbeec View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d7ceef1 View commit details
    Browse the repository at this point in the history
  6. mark from current epoch to boundary epoch when necessary

    this is necessary to avoid wearing clown shoes when the node stays
    offline for an extended period of time (more than 1 finality).
    
    Basically it gets quite slow if we do the full 2 finality walk, so we
    try to avoid it unless necessary.
    The conditions under which a full walk is necessary is if there is a
    sync gap (most likely because the node was offline) during which the
    tracking of writes is inaccurate because we have not yet delivered the
    HeadChange notification.  In this case, it is possible to have
    actually hot blocks to be tracked before the boundary and fail to mark
    them accordingly.  So when we detect a sync gap, we do the full walk;
    if there is no sync gap, we can just use the much faster boundary
    epoch walk.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    3a9b7c5 View commit details
    Browse the repository at this point in the history
  7. metrics: increment misses in View().

    raulk authored and vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b2b7eb2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e9f531b View commit details
    Browse the repository at this point in the history
  9. keep genesis-linked state hot

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    7cf75e6 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    bdb97d6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d33a44e View commit details
    Browse the repository at this point in the history
  12. fix test

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    fda291b View commit details
    Browse the repository at this point in the history
  13. reduce SyncGapTime to 1 minute

    for maximal safety.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    fa64814 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    41573f1 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    7c814cd View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    997f2c0 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    7b02673 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    3fe4261 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    9b64485 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    421f05e View commit details
    Browse the repository at this point in the history
  21. track writeEpoch relative to current wall clock time

    The issue: head change notifications are not emitted until after catching up,
    which results in all writes during a catch up period being tracked at the base epoch.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    bb17608 View commit details
    Browse the repository at this point in the history
  22. fix lint issue

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    66f1630 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    933c786 View commit details
    Browse the repository at this point in the history
  24. augment current epoch by +1

    to account for off by one conditions
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b789759 View commit details
    Browse the repository at this point in the history
  25. coalesce back-to-back compactions

    get rid of the CompactionCold construct, run a single compaction on catch up
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    c4d95de View commit details
    Browse the repository at this point in the history
  26. fix test

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    a178c1f View commit details
    Browse the repository at this point in the history
  27. reintroduce compaction slack

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    a25ac80 View commit details
    Browse the repository at this point in the history
  28. fix test

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    79d2148 View commit details
    Browse the repository at this point in the history
  29. CompactionThreshold should be 4 finalities

    otherwise we'll wear clown shoes with the slack and end up in continuous compaction.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    a21f559 View commit details
    Browse the repository at this point in the history
  30. adjust compaction range

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    30dbe49 View commit details
    Browse the repository at this point in the history
  31. Configuration menu
    Copy the full SHA
    0390285 View commit details
    Browse the repository at this point in the history
  32. add debug log skeleton

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    fc247e4 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    fce7b8d View commit details
    Browse the repository at this point in the history
  34. implement debug log

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    a53c4e1 View commit details
    Browse the repository at this point in the history
  35. fix lint

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b187b5c View commit details
    Browse the repository at this point in the history
  36. reset counters after flush

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    375a179 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    50ebaf2 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    649b7dd View commit details
    Browse the repository at this point in the history
  39. fix transactional race during compaction

    It is possible for an object to be written or recreated (and checked with Has)
    after the mark completes and during the purge; if this happens we will purge
    a live block.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    cb665d0 View commit details
    Browse the repository at this point in the history
  40. minor tweaks in purge

    - allocate once
    - log purge count
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    65ccc99 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    6af3a23 View commit details
    Browse the repository at this point in the history
  42. use internal get during walk to avoid blowing the compaction txn

    otherwise the walk itself precludes purge... duh!
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    31497f4 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    4a71c68 View commit details
    Browse the repository at this point in the history
  44. Configuration menu
    Copy the full SHA
    9fda61a View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    40ff5bf View commit details
    Browse the repository at this point in the history
  46. better log message

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    7ebef6d View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    dec61fa View commit details
    Browse the repository at this point in the history
  48. fix index out of range

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    0b315e9 View commit details
    Browse the repository at this point in the history
  49. fix debug panic

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b2b13bb View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    57e25ae View commit details
    Browse the repository at this point in the history
  51. cache stack repr computation

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    7307eb5 View commit details
    Browse the repository at this point in the history
  52. fix broken purge count log

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    4bed316 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    e29b64c View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    7de0771 View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    09efed5 View commit details
    Browse the repository at this point in the history
  56. walk tweaks

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    40f42db View commit details
    Browse the repository at this point in the history
  57. better logging for chain walk

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    90dc274 View commit details
    Browse the repository at this point in the history
  58. store the hash in map markset

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    f97535d View commit details
    Browse the repository at this point in the history
  59. treat Has as an implicit Write

    Rationale: the VM uses the Has check to avoid issuing a duplicate Write in the blockstore.
    This means that live objects that would be otherwise written are not actually written, resulting
    in the first write epoch being considered the write epoch.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    6a3cbea View commit details
    Browse the repository at this point in the history
  60. add missing return

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    e472cac View commit details
    Browse the repository at this point in the history
  61. batch implicit write tracking

    bolt performance leaves something to be desired; doing a single Put takes 10ms, about the same time
    as batching thousands of them.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    be6cc2c View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    a29947d View commit details
    Browse the repository at this point in the history
  63. Configuration menu
    Copy the full SHA
    7f473f5 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    d0bfe42 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    3e8e927 View commit details
    Browse the repository at this point in the history
  66. Configuration menu
    Copy the full SHA
    aeaa59d View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    2faa4aa View commit details
    Browse the repository at this point in the history
  68. fix panic at startup

    genesis is written (!) before starting the splitstore, so curTs is nil
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b3ddaa5 View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    4de0cd9 View commit details
    Browse the repository at this point in the history
  70. Configuration menu
    Copy the full SHA
    9828673 View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    13a6743 View commit details
    Browse the repository at this point in the history
  72. do the dag walk for deep write tracking during flush

    avoid crawling everything to a halt
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    a98a062 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    bd92c23 View commit details
    Browse the repository at this point in the history
  74. first write, then track

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    4071488 View commit details
    Browse the repository at this point in the history
  75. Configuration menu
    Copy the full SHA
    da00fc6 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    1d41e15 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    484dfae View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    9d6bcd7 View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    637fbf6 View commit details
    Browse the repository at this point in the history
  80. bubble up dependent txn ref errors

    This cause Has to return false if it fails to traverse/protect all links, which would cause
    the vm to recompute.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b87295d View commit details
    Browse the repository at this point in the history
  81. skip moving cold blocks when running with a noop coldstore

    it is a noop but it still takes (a lot of) time because it has to read all the cold blocks.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    68bc5d2 View commit details
    Browse the repository at this point in the history
  82. fix some residual purge races

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    e4bb4be View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    5834231 View commit details
    Browse the repository at this point in the history
  84. Configuration menu
    Copy the full SHA
    39723bb View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    736d6a3 View commit details
    Browse the repository at this point in the history
  86. Configuration menu
    Copy the full SHA
    8157f88 View commit details
    Browse the repository at this point in the history
  87. Configuration menu
    Copy the full SHA
    9d6cabd View commit details
    Browse the repository at this point in the history
  88. Configuration menu
    Copy the full SHA
    228a435 View commit details
    Browse the repository at this point in the history
  89. remove dead code

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    184d380 View commit details
    Browse the repository at this point in the history
  90. fix log message

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    2b03316 View commit details
    Browse the repository at this point in the history
  91. remove vm copy context detection hack

    stack tracing is slow.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    6f58fdc View commit details
    Browse the repository at this point in the history
  92. Configuration menu
    Copy the full SHA
    d79e4da View commit details
    Browse the repository at this point in the history
  93. remove unnecessary code

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    c5cf8e2 View commit details
    Browse the repository at this point in the history
  94. Configuration menu
    Copy the full SHA
    642f0e4 View commit details
    Browse the repository at this point in the history
  95. Configuration menu
    Copy the full SHA
    00fcf6d View commit details
    Browse the repository at this point in the history
  96. Configuration menu
    Copy the full SHA
    68a8350 View commit details
    Browse the repository at this point in the history
  97. Configuration menu
    Copy the full SHA
    d476a3d View commit details
    Browse the repository at this point in the history
  98. RIP tracking store

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    1f2b604 View commit details
    Browse the repository at this point in the history
  99. update splistore DI constructor

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    5f7ae1f View commit details
    Browse the repository at this point in the history
  100. simplify compaction model

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    6fa2cd2 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    36f9364 View commit details
    Browse the repository at this point in the history
  102. more efficient trackTxnRefMany

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    eafffc1 View commit details
    Browse the repository at this point in the history
  103. reuse key buffer in badger ForEachKey

    cid copies the bytes so it's safe
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    08cad30 View commit details
    Browse the repository at this point in the history
  104. fix log

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    0a1d7b3 View commit details
    Browse the repository at this point in the history
  105. Configuration menu
    Copy the full SHA
    19d1b1f View commit details
    Browse the repository at this point in the history
  106. housekeeping

    - remove defunct tracking store implementations
    - update splitstore node config
    - use mark set type config option (defaulting to mapts); a memory constrained node
      may want to use an on-disk one
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    190cb18 View commit details
    Browse the repository at this point in the history
  107. fix test

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    95c3aae View commit details
    Browse the repository at this point in the history
  108. Configuration menu
    Copy the full SHA
    8e56fff View commit details
    Browse the repository at this point in the history
  109. Configuration menu
    Copy the full SHA
    028a5c4 View commit details
    Browse the repository at this point in the history
  110. Configuration menu
    Copy the full SHA
    2c7a89a View commit details
    Browse the repository at this point in the history
  111. fix lint

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    1f02428 View commit details
    Browse the repository at this point in the history
  112. Configuration menu
    Copy the full SHA
    680af8e View commit details
    Browse the repository at this point in the history
  113. fix error message

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    4d286da View commit details
    Browse the repository at this point in the history
  114. Configuration menu
    Copy the full SHA
    f124389 View commit details
    Browse the repository at this point in the history
  115. smarter trackTxnRefMany

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    13d612f View commit details
    Browse the repository at this point in the history
  116. sort cold objects before deleting

    so that we can't shoot ourselves in the foot by deleting the constituents of a DAG while it is
    still in the hotstore.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    40c271c View commit details
    Browse the repository at this point in the history
  117. simplify transactional protection logic

    Now that we delete objects heaviest first, we don't have to do deep walk and rescan gymnastics.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    f33d4e7 View commit details
    Browse the repository at this point in the history
  118. reduce length of critical section

    Just the purge; the rest is not critical -- e.g. it's ok if we do some duplicate copies
    to the coldstore, we'll have gc soon.
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    94efae4 View commit details
    Browse the repository at this point in the history
  119. fix lint

    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    b08e0b7 View commit details
    Browse the repository at this point in the history
  120. reduce CompactionThreshold to 5 finalities

    so that we run compaction every finality, once we've first compacted
    vyzo committed Jul 4, 2021
    Configuration menu
    Copy the full SHA
    db53859 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2021

  1. deal with incomplete objects that need to be marked and protected

    seems that something is writing DAGs before its consituents, which causes problems.
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    1726eb9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3597192 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4c41f52 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c81ae5f View commit details
    Browse the repository at this point in the history
  5. only occur check for DAGs

    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    839f7bd View commit details
    Browse the repository at this point in the history
  6. short-circuit fil commitments

    they don't make it to the blockstore anyway
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    2ea2abc View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    918a7ec View commit details
    Browse the repository at this point in the history
  8. improve logs and error messages

    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    3ec834b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    d7709de View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    d8b8d75 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    0b7153b View commit details
    Browse the repository at this point in the history
  12. fix log

    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    59936ef View commit details
    Browse the repository at this point in the history
  13. get rid of ugly missing reference handling code

    those missing objects don't seem to ever get there, are they from an abandoned fork?
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    fa195be View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    59639a0 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    5a099b7 View commit details
    Browse the repository at this point in the history
  16. handle all missing refs together

    so that we wait 6min at most, not 12.
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    af8cf71 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    73d0799 View commit details
    Browse the repository at this point in the history
  18. unify the two marksets

    really, it's concurrent marking and there is no reason to have two different marksets
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    3477d26 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    e859942 View commit details
    Browse the repository at this point in the history
  20. make endTxnProtect idempotent

    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    bd436ab View commit details
    Browse the repository at this point in the history
  21. quiet linter

    it's a false positive, function doesn't escape.
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    51ab891 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    2cbd3fa View commit details
    Browse the repository at this point in the history
  23. use walkObjectRaw for computing object weights

    cids that come out of the hotstore with ForEach are raw.
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    c6ad8fd View commit details
    Browse the repository at this point in the history
  24. use hashes as keys in weight map to avoid duplicate work

    otherwise the root object will be raw, but internal references will be dag; duplicate work.
    vyzo committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    525a2c7 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2021

  1. cache cid strings in sort

    so as to avoid making a gazillion of strings
    vyzo committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    0659235 View commit details
    Browse the repository at this point in the history
  2. optimize sort a tad

    it's taking a long time to compute weights...
    vyzo committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    bf7aeb3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    55a9e0c View commit details
    Browse the repository at this point in the history
  4. really optimize computing object weights

    sort is still taking a long time, this should be as fast as it gets.
    vyzo committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    169ab26 View commit details
    Browse the repository at this point in the history
  5. minor tweak

    vyzo committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    c4ae3e0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    dc8139a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5c51450 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fdff1be View commit details
    Browse the repository at this point in the history
  9. improve comments

    vyzo committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    c1c2586 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f2f4af6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    0e2af11 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    90da622 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2021

  1. Configuration menu
    Copy the full SHA
    05dbbe9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6cc2112 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    83c30dc View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9dbb2e0 View commit details
    Browse the repository at this point in the history
  5. RIP bbolt-backed markset

    vyzo committed Jul 7, 2021
    Configuration menu
    Copy the full SHA
    451ddf5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ec586a8 View commit details
    Browse the repository at this point in the history
  7. nil map/bf on markset close

    vyzo committed Jul 7, 2021
    Configuration menu
    Copy the full SHA
    aec2ba2 View commit details
    Browse the repository at this point in the history
  8. don't nil the mark sets on close, it's dangerous.

    a concurrent marking can panic.
    vyzo committed Jul 7, 2021
    Configuration menu
    Copy the full SHA
    c6421f8 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    fee50b1 View commit details
    Browse the repository at this point in the history
  10. fix lint

    vyzo committed Jul 7, 2021
    Configuration menu
    Copy the full SHA
    4f80836 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2021

  1. check the closing state variable often

    so that we have a reasonably quick graceful shutdown
    vyzo committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    f5c45bd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    48f13a4 View commit details
    Browse the repository at this point in the history
  3. use RW mutexes in marksets

    vyzo committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    e6eacbd View commit details
    Browse the repository at this point in the history
  4. add README for documentation

    vyzo committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    9aa4f3b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    5cf1e09 View commit details
    Browse the repository at this point in the history
  6. move check for closure in walkChain

    so that we don't do it too often and also cover warmup.
    vyzo committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    00d7772 View commit details
    Browse the repository at this point in the history
  7. fix typo

    Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
    vyzo and magik6k authored Jul 8, 2021
    Configuration menu
    Copy the full SHA
    fa30ac8 View commit details
    Browse the repository at this point in the history
  8. fix typo

    Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
    vyzo and magik6k authored Jul 8, 2021
    Configuration menu
    Copy the full SHA
    c053784 View commit details
    Browse the repository at this point in the history
  9. fix potential deadlock in View

    As pointed out by magik, it is possible to deadlock if the view callback performs
    a blockstore operation while a Lock is pending.
    This fixes the issue by optimistically tracking the reference before actually calling
    the underlying View and limiting the scope of the lock.
    vyzo committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    60dd97c View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    b661112 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2021

  1. explicitly switch marksets for concurrent marking

    this has very noticeable impact in initial marking time; it also allows us
    to get rid of the confusing ts monikers.
    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    abdf4a1 View commit details
    Browse the repository at this point in the history
  2. make badger Close-safe

    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    909f703 View commit details
    Browse the repository at this point in the history
  3. correctly handle identity cids

    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    de5e21b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4f89d26 View commit details
    Browse the repository at this point in the history
  5. fix test

    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    565faff View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    acc4c37 View commit details
    Browse the repository at this point in the history
  7. dont mark references inline; instad rely on the main compaction threa…

    …d to do concurrent marking
    
    The problem is that it is possible that an inline marking might take minutes for some objects
    (infrequent, but still possible for state roots and prohibitive if that's a block validation).
    So we simply track references continuously and rely on the main compaction thread to trigger
    concurrent marking for all references at opportune moments.
    
    Assumption: we can mark references faster than they are created during purge or else we'll
    never purge anything.
    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    da0feb3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    095d742 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    18161fe View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    c0a1cff View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    b9a5ea8 View commit details
    Browse the repository at this point in the history
  12. fix test

    vyzo committed Jul 9, 2021
    Configuration menu
    Copy the full SHA
    4129038 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    f5ae10e View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    870a47f View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2021

  1. address review comments

    vyzo committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    0c5e336 View commit details
    Browse the repository at this point in the history
  2. fix lint

    vyzo committed Jul 10, 2021
    Configuration menu
    Copy the full SHA
    df9670c View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2021

  1. always return the waitgroup in protectView

    so that we preclude the following scenario:
        Start compaction.
        Start view.
        Finish compaction.
        Start compaction.
    
    which would not wait for the view to complete.
    vyzo committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    759594d View commit details
    Browse the repository at this point in the history
  2. put a mutex around HeadChange

    vyzo committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    60212c8 View commit details
    Browse the repository at this point in the history
  3. nit: remove useless goto

    Because stebalien has allergies.
    Stebalien committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    04abd19 View commit details
    Browse the repository at this point in the history
  4. fix view waiting issues with the WaitGroup

        
    We can add after Wait is called, which is problematic with WaitGroups.
    This instead uses a mx/cond combo and waits while the count is > 0.
    The only downside is that we might needlessly wait for (a bunch) of views
    that started while the txn is active, but we can live with that.
    vyzo committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    257423e View commit details
    Browse the repository at this point in the history
  5. finetune view waiting

    vyzo committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    af39952 View commit details
    Browse the repository at this point in the history