|
Igniters,
I was debugging the ignite-1239 ticket [1] and stumbled across a strange
behavior of IgniteCache#localPeek method. Namely, it peeks DHT cache only
if current node is either primary or backup. On a fast-changing topology
there may be a situation when neither primary nor a backup node is
currently a partition owner. Thus, there may be a window of time when
localPeek(key) returns null on *all* nodes in topology despite the fact
that there may be active partition owners.
In particular, it caused partition scan iterator to return partial results
in the test. I have changed the logic of localPeek in such a way that if
both primary and backup peek modes are set, then affinity check will be
ignored and DHT entry will be checked anyway. I think this behavior is more
correct.
Can somebody with good expertise in cache/queries take a look at my
changes? (added comment to the ticket).
Thanks,
AG
|