Persistent store is a distributed ACID and SQL-compliant disk store that transparently integrates with Ignite as an optional disk layer (SSD, Flash, 3D XPoint). Having the store enabled, you no longer need to keep all the data in memory or warm RAM up after the whole cluster restart. The persistent store will keep the superset of data and all the SQL indexes on disk making Ignite fully operational from disk. Relying on this new feature and on advanced SQL capabilities which existed before, Ignite can serve as a distributed transactional SQL database, both in memory and on disk, while continuing to support all the existing use cases, including the in-memory data grid.
Data Definition Language support was just announced around a month ago with the ability to create and drop SQL indexes in runtime and now you manage your caches and SQL schema with commands like CREATE or DROP table. In general, it means that you can connect to Ignite using JDBC or ODBC driver and fully configure the cluster using those well-know DDL statements. There is no more need to deal with Spring XML, Java or .NET specific configurations options for your cluster.
Machine Learning Grid becomes more powerful with an addition of distributed versions of such widely used algorithms us logistic regressions, linear regression and k-mean clustering. Furthermore, the foundation of the component which is distributed algebra has been significantly optimized and boosted to get everything from the hardware available cluster wide.
Java part of Ignite supports peer-class loading feature for a while. In short, with this feature enabled you don't have to manually deploy your Java or Scala code on each node in the cluster and re-deploy it each time it changes. The required classes will be preloaded or removed whenever is needed. Starting with Ignite 2.1 this feature is no longer a privilege of Java users. Now .NET developers can benefit from the same - a .NET assembly can be automatically preloaded to an already running .NET cluster node if an implementation of a distributed computation task is missing locally. The unloading is handled for you as well.
Compute Grid support is expanded to C++ level. Now nothing can prevents you from designing and developing compute tasks using C++ language and send the tasks for the execution to a Ignite cluster - Ignite.C++ will be able to serialize, deserialize and run the computations for you.