datawave icon indicating copy to clipboard operation
datawave copied to clipboard

WIP adapt DW PR#2568 to use accumulo PR#4898

Open keith-turner opened this issue 4 months ago • 0 comments

These draft changes build on #2568 with the following differences.

  • Compute bulkv2 load plans using new unreleased APIs in accumulo PR 4898
  • The table splits are loaded at the beginning of writing to rfiles instead of at the end. Not sure about the overall implications on on memory use in reducers of this change. The load plan could be computed after the rfile is closed using a new API in 4898 if defering the loading of tablet splits is desired.
  • Switches to using accumulo public APIs for writing rfiles instaead of internal accumulo methods. Well public once they are actually released.
  • The algorithm to compute the load plan does less work per key/value. Should be rougly constant time vs log(N).
  • Adds a simple SortedList class. This reason this was added is that this code does binary searches on list, however it was not certain those list were actually sorted. If the list was not sorted it would not cause exceptions in binary search but could lead to incorrect load plans and lost data. This new SortedList class ensures list are sorted and allows this assurance to travel around in the code. Maybe this change should be its own PR.

These changes are not yet tested.

keith-turner avatar Sep 30 '24 20:09 keith-turner