Prasad,

> Can you please answer following questions?
> 1) The significance of the nodeOrder w.r.t Grid and cache?
>
Node order is a unique integer assigned to a node when the node joins grid.
The node order is included into GridCacheVersion to disambiguate versions
generated on different nodes that happen to have the same local version
order.

> 2) When does it change?
>
Node order does not change during the node lifetime. If two versions have
different node order, it means that the versions were generated on
different nodes.

> 3) How it is important w.r.t. transaction?
>
GridCacheVersion is used to detect concurrent read-write conflicts as I
described in the previous message, as well as for data rebalance.

> 4) Inside transaction I am reading and modifying Replicated as well as
> Partitioned cache. What I observed is this fails for Replicated cache. As
> workaround, I have moved the code which reads Replicated cache out of
> transaction block. Is it allowed to read and modify both replicated and
> Partitioned cache i.e. use both Replicated and Partitioned?
>
Yes, this is perfectly fine to update replicated and transactional caches
inside one transaction.

>From the debug output that you provided we can infer that the version of
both entries have changed for both caches before transaction prepare phase.
I would back up Alexei here:
 * How do you ensure that there are no concurrent updates on the keys?
 * How many retry attempts did you run?
 * Are your caches in-memory with eviction policy?
 * Do you have TTL enabled for either of the caches?
 * Do you have a 3rd-party persistence and read-through and write-through
enabled for either of the caches?
 * Can you check if the issue reproduces if you set
-DIGNITE_READ_LOAD_BALANCING=false system property?

--AG

Reply via email to