Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Accumulo, mail # user - thread safety of IndexedDocIterator

Copy link to this message
Re: thread safety of IndexedDocIterator
Keith Turner 2012-11-05, 20:44
On Mon, Nov 5, 2012 at 3:29 PM, William Slacum
> At one point, Keith had warned me against kicking off threads inside a scan
> session. Is it possible we could have a discussion on the implications of
> this?

I think this is a slightly different issue.  The iterator is not
kicking off other threads.  The iterator does not seem to be safe to
use when there are concurrent scans using it on a single tablet

There are two other static fields that seem suspicious,  indexColfSet
and docColfSet.


> On Mon, Nov 5, 2012 at 11:30 AM, Billie Rinaldi <[EMAIL PROTECTED]> wrote:
>> On Mon, Nov 5, 2012 at 11:24 AM, Sukant Hajra <[EMAIL PROTECTED]>
>> wrote:
>>> We noticed that IndexedDocIterator.java has the following private static
>>> fields:
>>>     private static Text indexColf = DEFAULT_INDEX_COLF;
>>>     private static Text docColf = DEFAULT_DOC_COLF;
>>> The init method, which sets these is synchronized.  Still, though, this
>>> synchronization doesn't seem enough to allow different runs of the
>>> iterator to
>>> use different values for indexColf and docColf.  One run will set the
>>> "Colf"
>>> variables one way atomically in the synchronized init method. . . and
>>> another
>>> run and immediately interleave in alternate "Colf" settings, which breaks
>>> the
>>> original iterator run.
>>> For now, we're not touching the indexColf and docColf, just leaving it as
>>> the
>>> defaults.
>>> We're not blocked by this.  We're just curious if there's a bug in this
>>> design.
>>> Also, if it's not a defect, we're interested in learning what system
>>> invariant
>>> of iterator execution makes this not a problem.
>> Sounds like a bug.  Feel free to open a ticket!
>> Billie
>>> Thanks,
>>> Sukant