Roadmap for Brahma

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:

 

 

Features

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.

 

Fine-grained AtomicHashMaps

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.

 

Soft-schema support

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.

 

Versioned Entries

The ability to version entries helps with a number of features, including an eventually consistent mode with greater partition tolerance.

 

Marshallers per Cache

So that class loading during the marshalling/unmarshalling phases can work in modular environments. See ISPN-1205.

 

Schedules

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