Hi Dan, Currently query results do not reflect transaction state at all. The new proposal won't change that.
On Fri, Feb 10, 2017 at 10:47 AM, Eric Shu <e...@pivotal.io> wrote: > Please note even in our current transaction implementation, repeatable > read is not supported on collection operation in transaction with > Partitioned Region. Currently, only the local entry set (resides in the > local node) of a PR is copied into the txState, while data on the remote > nodes are not. Another call of the collection operation of the same > transaction could have different results for the data on the remote nodes. > > In addition, containValue() call currently does not support repeatable > read either. It does not copy all data into txState (replicated or > partitioned regions.) > > Currently we only support limited repeatable read for collection > operations in transaction (at least for PR). > > On Fri, Feb 10, 2017 at 8:36 AM, Anthony Baker <aba...@pivotal.io> wrote: > >> I tend to agree with Mike. Removing collection reads from the txn state >> changes the programming model and makes it harder to write a Geode >> application. We’re leaking internal details into the public behavior. >> >> Is there another way to provide this optimization to the user? Perhaps >> something like: >> >> CacheTransactionManager txMgr = cache.getCacheTransactionManager(); >> txMgr.begin(READ_COMMITTED); // just thinking out loud here >> >> Or, we could set a hard cap on the size of txState. Would that satisfy >> the original goal to ensure that users apply Geode txns correctly? >> >> Anthony >> >> > On Feb 10, 2017, at 12:15 AM, Michael Stolz <mst...@pivotal.io> wrote: >> > >> > -1 >> > >> > I would recommend against breaking repeatable read semantics for >> specific >> > cases. If we're going to do something about the memory pressure, great, >> but >> > not at the cost of functionality guarantees. >> > >> > -- >> > Mike Stolz >> > Principal Engineer - Gemfire Product Manager >> > Mobile: 631-835-4771 >> > >> > On Feb 9, 2017 10:29 PM, "Eric Shu" <e...@pivotal.io> wrote: >> > >> > All, >> > >> > In current Geode transaction implementation, there will be memory >> pressure >> > if collection is used in a transaction. (GEODE-2392 >> > https://issues.apache.org/jira/browse/GEODE-2392). >> > >> > Geode transactions provide repeatable read semantics. In order to >> support >> > this repeatable read isolation, all read operations copy the current >> value >> > in txState. >> > >> > The proposed new implementation is to have collection operation in a >> > transaction not copying all values into its txState. Instead, it will go >> > over to region directly but reflecting the new state of the entries >> changed >> > by the previous operations of this transaction. >> > >> > Please note that the proposed implementation will not support repeatable >> > read for collection operations. >> > >> > Any thoughts? >> > >> > Regards, >> > Eric >> >> >