Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-4713

IteratorUtil.minimizeEndKeyTimestamp() and IteratorUtil.maximizeStartKeyTimestamp() may not set correct ranges

    Details

      Description

      If a Key with a Long.MAX_VALUE timestamp is the startKey of the Range passed to maximizeStartKeyTimestamp() or a Long.MIN_VALUE timestamp is the endKey of the range passed to minimizeEndKeyTimestamp() the returned Range will not have inclusive set to true for the start/end Key.

      This was observed while using the VersioningIterator and table.scan.max.memory setting. When the scan range includes matching Keys of which one has the timestamp of Long.MAX_VALUE the table.scan.max.memory can be set such that a reseek will be performed starting with the Key that has a Long.MAX_VALUE timestamp. The result is that the Key with Long.MAX_VALUE will be returned from the first batch, and the value will not be considered when evaluating the second batch, since the Range will not be modified to be inclusive when calling IteratorUtil.maximizeStartKeyTimestamp(), leading to the next (matching) Key also being returned.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                FineAndDandy Charles Williams
                Reporter:
                FineAndDandy Charles Williams
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 40m
                  2h 40m