Businesses are accumulating data at enormous rates requiring huge amounts of storage. Managing large data is hard, but processing it is even more challenging. With terabytes of data to store and process, it is often the case that developers find themselves in a quandary about how to strike the right balance between speed, scalability, and cost.
Storing data in cache can significantly enhance the speed of your application. It reduces the network overhead caused due to frequent data movement between an application and the database.
Apache Ignite allows you to store the most frequently accessed data in memory. It evenly distributes the data across a cluster of computers in either partitioned or replicated manner. Ignite allows you to access the data from any underlying data store – RDBMS, NoSQL, or HDFS.
You may ask - Once a cluster is formed with n nodes, what if the size of the data set increases? In that case, you can dynamically add nodes to the Ignite cluster without restarting the entire cluster. Ignite has virtually unlimited scale.
Ignite database caching provides the following configurable options:
Write-Through and Read-Through
In write-through mode, when data is updated in cache, it is also updated in the underlying database. In case of read-through mode, when the requested data is not available in cache, it is automatically loaded from the database.
Ignite provides an option to asynchronously perform updates to the database. By default, each update in a write-through mode involves a corresponding request to the underlying database. With write-behind caching enabled, cache data updates are accumulated and sent to the database in batches. For applications where put and remove operations are frequent, write-behind caching can provide a performance boost.
Ignite ships with its own user-friendly database schema-mapping wizard that provides automatic support for integrating with persistent stores. This utility automatically connects to the underlying database and generates all the required XML OR-mapping configuration and Java domain model POJOs.
To query the Ignite cache, you can simply use the standard SQL syntax (ANSI 99). Ignite lets you use any SQL function, aggregation, or grouping. It also supports distributed SQL joins. Here is an example of how to execute an SQL query in Ignite: