What is Apache Ignite? A Primer for Beginners

Apache Ignite Primer

The Apache Ignite community is maintained by dedicated volunteers who manage a highly informative and well-designed website. This website is regularly updated with the latest news and information about the open-source project. A section of this content, found on the GridGain blog, provides an overview of Apache Ignite's basic concepts, facts, tips, and tricks. The goal of this blog post is to introduce Ignite and help readers understand its fundamental features.

Apache Ignite is ...

…a powerful platform that combines the functionalities of a distributed database, caching system, and processing engine. It is specifically designed to handle transactional, analytical, and streaming workloads efficiently. By leveraging its memory-centric architecture, Apache Ignite can deliver lightning-fast performance even when dealing with massive amounts of data, scaling up to the petabyte level.

Enhanced Memory Durability

Apache Ignite's durable memory component goes beyond simply serving as a caching layer for RAM. It functions as a comprehensive storage layer, offering users the flexibility to enable or disable data persistence as required.

When persistence is disabled, Ignite can serve as a distributed in-memory database or an in-memory data grid, depending on your preference for using SQL or key-value APIs. This allows for fast and efficient data processing without the need for permanent storage.

On the other hand, when persistence is enabled, Ignite transforms into a horizontally scalable distributed database. It ensures full data consistency and remains resilient even in the face of complete cluster failures. This means that your data is protected and readily available, providing a robust solution for handling complex data-intensive applications.
 

Introducing Ignite Persistence

Apache Ignite Native Persistence is a powerful storage solution that seamlessly integrates with Ignite's Durable Memory. It offers distributed, ACID-compliant, and SQL-compatible disk storage capabilities. This means that it can efficiently store data and indexes on various non-volatile storage devices such as SSDs, Flash drives, and 3D XPoint. By enabling Ignite Persistence, you eliminate the need to keep all your data and indexes in memory or perform warm-up operations after a node or cluster restart. This is because the Durable Memory works hand in hand with persistence, treating it as a secondary memory tier. So, if there are any missing subsets of data or indexes in RAM, the Durable Memory will seamlessly retrieve them from the disk storage.
 

ACID Compliance

Apache Ignite ensures data integrity and consistency by following ACID (Atomicity, Consistency, Isolation, Durability) principles. This means that data stored in Ignite remains consistent both in memory and on disk, even when transactions are performed across multiple servers.
 

Complete SQL Support

With Ignite, users can interact with the system using SQL queries without the need for writing custom code. Ignite provides full support for SQL, including Data Definition Language (DDL) and Data Manipulation Language (DML). Users can create tables, indexes, and perform operations like insert, update, and query data using pure SQL. This comprehensive SQL support sets Ignite apart as a unique distributed SQL database.
 

Key-Value 

Ignite's in-memory data grid is a fully transactional distributed key-value store. It can scale horizontally across hundreds of servers in a cluster. When persistence is enabled, Ignite can store more data than what can fit in memory and can survive full cluster restarts while maintaining data integrity.
 

Collocated Processing 

Traditional databases usually require bringing data to the client side for processing, resulting in significant data movement and scalability challenges. In contrast, Ignite allows lightweight computations to be sent directly to the data, enabling collocated processing. This approach minimizes data movement, improves scalability, and enhances overall performance.
 

Scalability and Durability

Ignite is designed as an elastic and horizontally scalable distributed system. It supports dynamic addition and removal of cluster nodes as per demand. Ignite also provides the option to store multiple copies of data, ensuring resilience against partial cluster failures. When persistence is enabled, Ignite can recover data from full cluster failures, enabling fast cluster restarts. The data becomes operational instantaneously from disk, eliminating the need for preloading in-memory and allowing for efficient data processing using Ignite caches.