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

Add mechanism to cancel scans

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Implemented
    • None
    • None
    • tserver
    • None

    Description

      ScannerBase.close() closes all connections to a given scan, but if there's an iterator spinning on the scan, it will keep running at least until a record makes it all the way out of the iterator stack. If you have a bug in an iterator, or a filter that doesn't match anything, or a combiner that matches everything, then that could mean scanning an entire table. It would be nice if there were some mechanism to interrupt that process.

      We probably couldn't do anything about a really buggy externally provided iterator that just spins without calling next() downstream (short of calling Thread.close(), which is probably a bad idea), but accumulo iterators could periodically check for cancellation and bail gracefully (maybe each time we're about to load a new block?). It would be nice to provide a mechanism for external iterators to check their cancellation status so they can have an opportunity to be well behaved if they're doing anything that might take a while, but that seems less important.

      Attachments

        Activity

          People

            Unassigned Unassigned
            mberman Michael Berman
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: