Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.4.0
    • Component/s: client
    • Labels:

      Description

      We should define what happens in a SortedKeyValueIterator when hasTop, next, getTopKey, and getTopValue are called before init and before seek. We should expect the defined behaviors in tests, and where possible we should enforce those behaviors.

        Activity

        Hide
        Keith Turner added a comment -

        It would be good to do some performance testing to understand what, if any, impact these changes have on scan rates.

        Show
        Keith Turner added a comment - It would be good to do some performance testing to understand what, if any, impact these changes have on scan rates.
        Hide
        Keith Turner added a comment -

        Major compactions are failing after recent changes in this ticket

        07 18:49:34,605 [tabletserver.Tablet] ERROR: MajC Failed, message = never been seeked
        java.lang.RuntimeException: never been seeked
        at org.apache.accumulo.core.iterators.WrappingIterator.hasTop(WrappingIterator.java:48)
        at org.apache.accumulo.core.iterators.system.DeletingIterator.findTop(DeletingIterator.java:73)
        at org.apache.accumulo.core.iterators.system.DeletingIterator.<init>(DeletingIterator.java:40)
        at org.apache.accumulo.server.tabletserver.Compactor.compactLocalityGroup(Compactor.java:241)
        at org.apache.accumulo.server.tabletserver.Compactor.call(Compactor.java:117)
        at org.apache.accumulo.server.tabletserver.Tablet._majorCompact(Tablet.java:3154)
        at org.apache.accumulo.server.tabletserver.Tablet.majorCompact(Tablet.java:3236

        Show
        Keith Turner added a comment - Major compactions are failing after recent changes in this ticket 07 18:49:34,605 [tabletserver.Tablet] ERROR: MajC Failed, message = never been seeked java.lang.RuntimeException: never been seeked at org.apache.accumulo.core.iterators.WrappingIterator.hasTop(WrappingIterator.java:48) at org.apache.accumulo.core.iterators.system.DeletingIterator.findTop(DeletingIterator.java:73) at org.apache.accumulo.core.iterators.system.DeletingIterator.<init>(DeletingIterator.java:40) at org.apache.accumulo.server.tabletserver.Compactor.compactLocalityGroup(Compactor.java:241) at org.apache.accumulo.server.tabletserver.Compactor.call(Compactor.java:117) at org.apache.accumulo.server.tabletserver.Tablet._majorCompact(Tablet.java:3154) at org.apache.accumulo.server.tabletserver.Tablet.majorCompact(Tablet.java:3236
        Hide
        Keith Turner added a comment -

        Some classes that extend wrapping iterator call getSource().next(), getSource.hasTop(), etc.

        Need to define what the expected behavior is in the iterator interface, like the Java Iterator interface does.

        Show
        Keith Turner added a comment - Some classes that extend wrapping iterator call getSource().next(), getSource.hasTop(), etc. Need to define what the expected behavior is in the iterator interface, like the Java Iterator interface does.
        Hide
        Keith Turner added a comment -

        Maybe throw an IllegalStateException instead of RuntimeException in WrappingIterator

        Show
        Keith Turner added a comment - Maybe throw an IllegalStateException instead of RuntimeException in WrappingIterator

          People

          • Assignee:
            Billie Rinaldi
            Reporter:
            Billie Rinaldi
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development