Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-2589 Create new client API
  3. ACCUMULO-759

remove priority setting for scan-time iterators

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      Iterators have a priority setting that allows a user to order iterators arbitrarily. However that priority is an integer that doesn't directly convey the iterator's relationship to other iterators. I would postulate that nobody has ever needed to sneak in a scan-time iterator underneath a configured table iterator (please let me know if I'm wrong about this), and the effect of doing so is not easy to calculate. Many people have chosen a bad iterator priority and seen commutativity problems with previously configured iterators.

      I propose that we use more of an agglomerative approach to configuring scan-time iterators, in which the order of the iterator tree is the same order in which the addScanIterator method is called, and all scan-time iterators apply after the configured iterators apply. The change to the API should just be to remove the priority number, and the existing IteratorSetting constructor and accessors should be deprecated.

      With this change, we can think of an iterator as more of a functional modification to a data set, as in T' = f(T) or T'' = g(f(T)). This should make it easier for developers to use iterators correctly.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              afuchs Adam Fuchs
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: