"매 distributed in-memory data grid + compute grid + ANSI SQL". 매 GridGain (2007) → Apache Ignite (2014, donated). 매 2026 modern stack 은 Ignite 2.16 (GA mid-2025) / Ignite 3.x (preview, 매 new architecture: RAFT-based, ANSI SQL-first, 매 GridGain 9 commercial). 매 Hazelcast / Redis 의 alternative — 매 SQL + ACID transactions 의 differentiator.
매 핵심
매 features
In-memory key-value cache — partitioned (sharded) or replicated.
SqlFieldsQueryq=newSqlFieldsQuery("SELECT o.id, c.name FROM \"orders\".Order o "+"JOIN \"customers\".Customer c ON o.customerId = c.id "+"WHERE o.status = ?").setArgs("paid");try(varcur=orders.query(q)){for(List<?>row:cur)System.out.println(row);}
@QuerySqlField(index=true)privateLongcustomerId;// Affinity key — rows with same customerId on same node@AffinityKeyMappedprivateLongcustomerId;// Now JOIN orders ↔ customers stays node-local
ignite.compute().broadcast(()->{System.out.println("Hello from "+ignite.cluster().localNode().id());});// Send Lambda — Ignite peer-class-loads to all nodes
언제: 매 sub-ms latency + SQL + ACID 의 simultaneous requirement, 매 compute-near-data, 매 JVM ecosystem.
언제 X: 매 simple cache only (Redis cheaper), 매 non-JVM stack (limited tooling), 매 small data (<10GB, single node fine).
❌ 안티패턴
No backups: 매 node loss → data loss. 매 setBackups(≥1).
Cross-cache JOIN without affinity: 매 network shuffle, 매 query 의 slow.
Synchronous replication everywhere: 매 latency. 매 PRIMARY_SYNC + async backup balance.
Mixing partitioned + replicated joins carelessly: 매 broadcast amplification.