Github user joshelser commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/159#discussion_r88744008
  
    --- Diff: 
core/src/main/java/org/apache/accumulo/core/iterators/SortedKeyValueIterator.java
 ---
    @@ -147,4 +147,13 @@
        *              if not supported.
        */
       SortedKeyValueIterator<K,V> deepCopy(IteratorEnvironment env);
    +
    +  /**
    +   * Closes the Iterator. This should be overridden by the implementing 
class that has access to <tt>SortedKeyValueIterator source</tt> provided in the
    --- End diff --
    
    > They are very situational so there never seems to be a consistent way to 
handle them
    
    Well, we need to figure this out. We *need* to understand how the framework 
is supposed to work. If that depends on how the context in how the iterators 
are being invoked (which I really don't think it should), we need to 
encapsulate that somewhere because users will have the same question. 
Complicated or not, we must be clear.
    
    > In general, I think iterators should avoid throwing RuntimeException 
here. However, they should probably pass through any coming from a 
source.close(), after they are done cleaning up their own resources.
    
    Hrm. I think I see where you are coming from (if there's some DFSClient 
exception, we want to propagate that). What if I channel my inner @dhutchis -- 
I have some iterator which I'm expecting results to be sent to some external 
system when close() is called but I run into some I/O related exception. Should 
the Scan/Compaction itself fail and be retried? Do we say "oh well"?
    
    I'm starting to think that we really should have a design doc for this 
feature. I'm worried about this making Iterators even more complicated than 
they already are...


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to