Apache Ignite comes with ANSI-99 compliant, horizontally scalable and fault-tolerant distributed SQL database. The distribution is provided either by partitioning the data across cluster nodes or by full replication, depending on the use case.
As an SQL database, Ignite supports all DML commands including SELECT, UPDATE, INSERT, and DELETE queries. It also implements a subset of DDL commands relevant for distributed systems.
One of Ignite's distinguishing characteristics is the full support for distributed SQL JOINs. Ignite can join data in both collocated and non-collocated fashions. When collocated, the JOINs are executed on the local data available on each node without having to move large data sets across the network. Such approach provides the best scalability and performance in distributed databases.
Unlike many distributed SQL databases, Ignite treats both memory and disk as full-fledged active storage tiers for its data and indexes. Even more, the disk tier is optional and, if disabled, turns Ignite into a pure in-memory database.
You can interact with Ignite as you would with any other SQL enabled storage by connecting with JDBC or ODBC drivers from both external tools and applications. On top of that, Java, .NET and C++ developers can leverage from Apache Ignite native libraries that incorporate SQL APIs.