
As some of you may noticed I haven't been blogging as often lately. The main reason for that is that all of us at GridGain were fully concentrated on pushing our next 2.1 release out the door. And now, as I really feel we are close (probably a week or 2 away), I would like to give some heads up on the upcoming features you will see in GridGain 2.1
Per-Task SPI CustomizationNow you will be able to configure different sets of SPI's for different tasks. For example, Task1 and Task2 can have different topology and load-balancing policies.
Node Filters and Apache JEXL You will be able to specify grid node topology based on Apache JEXL expression language directly from XML configuration or from code. The example below will include all nodes that have more than one processor, CPU load less than 70%, and belonging to 'worker-segment' configured by user.
(node.metrics.availableProcessors > 1) &&
(node.metrics.currentCpuLoad < 0.7) &&
(node.attributes.get('segment').equals('worker-segment'))
LifeCycle BeansYou will be able to hook into GridGain lifecycle using LifeCycle Beans. Basically GridGain will be able to receive a collection of LifeCycle Beans on startup and then it will invoke callbacks on those beans once life cycle events occur.
Customizable Marshalling And XML SerializationGridGain will now come with 3 optional implementations of marshalling: Jboss, JDK, and XStream XML-based. Default value will remain to be JBoss Serialization, but now you will be able to easily switch to JDK serialization, or for cases where you need to exchange non-serializable data, you will be able to use XStream XML-based serialization.
Database Job CheckpointsPrior to 2.1 you had ability to store checkpoings in Shared File System or distributed caches. Starting with 2.1, GridGain will support ability to store intermediate checkpoints for long running jobs in database.
Tighter Spring IntegrationIn GridGain 2.1 you will be able to inject Spring beans into your grid tasks and jobs by simply annotating fields or methods with
"@GridSpringBean(name)" annotation. You also will be able to configure the whole GridGain as a Spring bean and wire it up via Spring configuration files.
Peer-Class-Loading For Grid Event QueryingNow you will be able to query events without having to deploy event filters on all grid nodes. For example, the following code will give you all events from all grid nodes without any extra deployment steps:
Grid grid = GridFactory.getGrid();
Collection<GridNode> allNodes = grid.getAllNodes();
Collection<GridEvent> evts = grid.queryEvents(myEventFilter, allNodes);
Flexible Deployment ModesThis is a very big change for us as it really enhances GridGain
"Code->Compile->Run" philosophy. As many of you know, there are no explicit deployment steps when working with GridGain - the deployment happens automatically, but now users will be able to control how classes and user resources should be shared across grid. Prior to 2.1, users had only the option of every task being loaded through its own separate class loader, which made it somewhat inconvenient to share classes and resources between tasks. Now, the behavior of class-loading on remote nodes will absolutely resemble class-loading on local nodes, and if user can share some resource, say database connection, between tasks on local node, then user will be able to share the same resource remotely without any extra deployment steps.
Groovy ExamplesRelease 2.1 will have changes to accommodate running GridGain from Groovy. It will also come with examples and instructions on how to run GridGain on Groovy. Overall, GridGain can work from Groovy quite naturally, we just had to make a few small changes to make sure that Peer-Class-Loading works as desired.
Maven RepositoryAnd last but not least, for all those users who keep asking about Maven repository, I am happy to announce that GridGain 2.1 will have it.
I am sure I am forgetting something :) In following days I will touch in more details on some of the new additions and enhancements coming in 2.1 release.
Add a comment