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

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

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 1.7.4, 1.9.0
    • None

    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

              FineAndDandy Charles Williams
              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