Github user ivakegg commented on the issue:
https://github.com/apache/accumulo/pull/260
@phrocker I apologize, but either I am missing something or I have not
adequately explained what is going on here. First and foremost, no iterator
will ever yield unless somebody explicitly writes an iterator that does.
Yields are never forced. This is completely cooperative yielding. If somebody
writes an iterator that does yield, then the iterator should only yield if it
is taking too much time between keys being returned. In other words, if the
iterator decides to yield often then it will suffer in overall performance.
There will only be an increase in RPC calls if the iterator yields when there
are keys in the buffer, but we have not reached scan max memory. Yes, long
scans will continue to be long. This mechanism is simply to allow the system
being developed to avoid starvation of short running scans if they cannot
afford to increase the number of threads.
---
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.
---