Hi Team,

Currently in GEODE JTA implementation, if GEODE transaction is not yet
bootstrapped (there is no TXState created yet for the transaction), region
set operations will not bootstrap the JTA transaction. In other word, if
the first operation of the JTA transaction is region set operation, the set
is not in a transactional view (TXState). However, if the JTA
UserTransaction has been bootstrapped (first operation is a get or put
operation, etc), the following region set operation is transactional (in
TXState). To some users, this seems to be a bug. Please see the GEODE
ticket (https://issues.apache.org/jira/browse/GEODE-3521).

Although we intentionally implemented this way to alleviate the memory
requirements for users (each transaction will have a new copy of region
data put into TXState but not if the set op is the first op), we think the
new user has a valid point as well. We propose to allow region set op to
bootstrap the transaction. To allow backward compatibility, we will
introduce a new GemFire property to allow the old behavior.

The question is what should be a default behavior. Do we allow region set
op to bootstrap transaction as default? If so, existing customers need to
set the new property to get the old behavior. Or we maintain the old
behavior, and require the new users to set the property.

Please comment if you have any suggestions.

Thanks,
Eric

Reply via email to