Some of the most important features of this release, among others, include deadlock-free in-memory transactions, significant improvements to the zero-deployment model, and major performance improvements. All these features have been available in Apache Ignite 1.5 for a while, but now, after many rounds of load testing and bug fixes, have finally received GridGain's ready-for-production stamp of approval.
Deadlock-Free Transactions
Deadlocks usually happen when the same objects are concurrently updated in a different order by different transactions. Transactions begin to indefinitely wait on each other to complete, causing deadlock scenarios. Such problems are very difficult to spot and are even harder to debug. In production, they would require a full cluster restart, leading to costly system down times.The traditional solution to the deadlock problem is to ensure that applications acquire locks in the same order. However, this is easier said than done, especially in large distributed teams. Just imagine how many objects may be updated by a simple "transfer(...)" method on some bank's API. Grouping such calls in a common transaction is almost certain to generate a deadlock.
A much better solution is to drop the locks altogether, which is what Apache Ignite community did. Essentially, all the transactions are given a chance to succeed until it is impossible to logically order some transaction. When this happens, the transaction optimistically fails with an exception and is allowed to be retried. Turns out that this optimistic-serializable consistency model is about 50% faster than its pessimistic counterpart. However, the biggest benefit is that the deadlocks are now impossible.
Zero-Deployment (revisited)
Such combination of the binary protocol together with the distributed class-loader creates a deployment-free cluster environment, where both data model and computation logic can be dynamically updated without any explicit deployment steps or down times.
Pushing Performance Boundaries
Other features of 7.5 release include OSGI compliance as well as new data streamers, including support for Twitter, MQTT, and Flume real time streams.
The latest release can be downloaded here.
Add a comment