Apache Ignite the in-memory compute framework is a new exciting thing for me to get to grips with. Luckily, the guys here have experience making my initial forays into this technology pretty straightforward. It offers features such as durability, strong constancy and high availability, providing SQL, key-value and processing API’s allowing us to treat the framework as an in-memory database or a key/value store like Redis. Its main features are;
Durable MemoryRAM is treated not only as a caching layer but as a complete fully functional storage layer
PersistenceNative persistence is a distributed ACID (Atomicity, Consistency, Isolation and Durability) and SQL compliant disk store that integrates with Ignites Durable Memory. This is tightly coupled with memory ensuring that if data is missing from memory it is retrieved from disk, this eliminates the need to read data back into memory from disk on cluster restart.
Scalability and DurabilityIgnite is an elastic, horizontally scalable distributed system that supports adding and removing cluster nodes on demand.
Running an instance is pretty straight forward, you need only download it locally and execute a simple bash script (specifying a configuration, sample ones are included). Nodes can be added by running the same script on another node, these can be configured to auto join a cluster using TCP Multicast or Static IP lists (not at all exhaustive).
Submitting jobs to the cluster is accomplished in a number of ways, perhaps simplest is over JDBC, a think client is provided as part of the ignite-core jar and you can easily execute SQL statements to create tables, insert data and query etc.
Alternatively, API’s are provided in many popular languages incl Java/.Net/C++ and Scala.
That’s it for now. As I build up my understanding I expect I’ll be writing more about this.