The roadmap and planning document for Infinispan 5.1.0, codenamed Brahma.
Brahma will be focused on a handful of key features and enhancements over 5.0.0. (Pagoa), and these are summed up as:
Refactoring state transfer and rehashing
This consolidates the state transfer codebase used in replicated mode with the rehash code used in distributed mode. In addition to consolidating the codebase, the terminology state transfer will be retained for this function, regardless of whether it is used in replicated or distributed mode. See ISPN-1194.
Further, additinal enhancements will be introduced including parallelising the state transfer process, chunking the RPCs, and adding a digesting mechanism so that unchanged entries that can be retrieved locally, such as from a cache store, need not be transferred.
Refactoring locking and transactions
This task cleans up and clearly defines both optimistic and pessimistic locking modes for both local and clustered modes, and will make configuration easier and more in-line with expected behaviour.
Further, support for non-transactional calls in a transactional environment will be dropped as this can lead to inconsistencies, but an "implicit transaction" mode will be supported (and enabled by default) to provide backward compatibility.
Transactions will be further improved using lock acquisition reordering to minimise distributed deadlocks, as would a single-lock-owner scheme to reduce RPCs and remove one more mechanism of deadlocks occuring.
This is a requirement for Hibernate OGM, and this allows for fine-grained delta-based updates to entries with fine-grained locking. The existing AtomicHashMaps do coarse-grained locking which is inefficient for certain Hibernate OGM operations. See ISPN-1115.
This allows for JSON documents to be stored in Infinispan, with fine-grained updates similar to AtomicHashMap. See ISPN-1103.
Configuration to move off JAXB
... and onto a S(t)AX based implementation for faster parsing of XML configuration. See ISPN-1065.
Marshallers per Cache
So that class loading during the marshalling/unmarshalling phases can work in modular environments. See ISPN-1205.
Schedules, as with all open source projects, are soft but as far as possible targets are:
- 5.1.0.Alpha1 - mid-August.
- More alphas (weekly?) throughout August.
- Betas throughout September
- First release candidate 1st week of October
- Final release by 1st week of November