make system iterators thread-safer
----------------------------------

                 Key: ACCUMULO-533
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-533
             Project: Accumulo
          Issue Type: Bug
            Reporter: Adam Fuchs
            Assignee: Adam Fuchs


It is possible that at some point in the future users will want to write 
multi-threaded iterators. This could possibly introduce thread safety problems 
in the system iterators, especially in the case where multiple threads might be 
calling "next", "getTopKey", etc. at the same time. In order to maintain some 
semblance of sanity, we need to synchronize these methods at the top of the 
system iterator tree. Eventually, we might also want to change the iterator API 
to make it useful to call multiple of these methods concurrently, but that will 
be in another ticket.

The immediate solution calls for a simple iterator that is similar to the 
WrappingIterator called the SynchronizedIterator, all of whose public methods 
are synchronized on the object's monitor. In single-node performance testing we 
found the read performance cost of this solution to be below the noise 
threshold, approximately less than a 1% cost.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to