-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
Each node contains a transaction table that is local to the node. However, it contains transactions originating from the local cluster.
Currently, there are 2 sources of outside (external) transactions, which are managed from a system outside the cluster: hot rod client and cross-site.
The Hot Rod client has a replicated cache as a transaction table to handle this case, but cross-site does not. Cross-site transactions are only stored in a single node which can lead to data/transaction loss.
The proposal is to have an external transaction table component, backed up with a replicated cache or RAFT protocol.
It needs to be configured as follows
- enabled -> (default: false) If there are no external transactions, we skip the initialization altogether.
- partitions -> (default: available) or consistent if partition handling should be enabled
- storage -> (default: volatile) or persistent (does it make sense?)
- max-active -> (default -1) eviction if storage==persistent
This logic will live in the core module so it can be shared between cross-site and Hot Rod server code.
- is related to
-
ISPN-15426 Hot Rod Transactions: improve code and avoid FunctionalMap
- New
-
ISPN-15895 Cross-site: 2PC transaction does not acquire locks
- Resolved