This is an automated email from the ASF dual-hosted git repository.
sk0x50 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-website.git
The following commit(s) were added to refs/heads/master by this push:
new 2831c8f2d2 IGNITE-26964 Add getting to know AI3 blog (#282)
2831c8f2d2 is described below
commit 2831c8f2d2ba8b0a315475e538a80b3b231f50e1
Author: IgGusev <[email protected]>
AuthorDate: Tue Nov 11 20:54:30 2025 +0400
IGNITE-26964 Add getting to know AI3 blog (#282)
---
_src/_blog/getting-to-know-apache-ignite-3.pug | 384 +++++++++++++++++
blog/apache/index.html | 83 ++--
...x.html => getting-to-know-apache-ignite-3.html} | 477 ++++++++++++---------
blog/ignite/index.html | 47 +-
blog/index.html | 47 +-
blog/release/index.html | 6 +-
6 files changed, 728 insertions(+), 316 deletions(-)
diff --git a/_src/_blog/getting-to-know-apache-ignite-3.pug
b/_src/_blog/getting-to-know-apache-ignite-3.pug
new file mode 100644
index 0000000000..f3f95b4e8d
--- /dev/null
+++ b/_src/_blog/getting-to-know-apache-ignite-3.pug
@@ -0,0 +1,384 @@
+---
+title: "Getting to Know Apache Ignite 3: A Schema-Driven Distributed Computing
Platform"
+author: "Michael Aglietti"
+date: 2025-11-11
+tags:
+ - apache
+ - ignite
+---
+
+p Apache Ignite 3 is a memory-first distributed SQL database platform that
consolidates transactions, analytics, and compute workloads previously
requiring separate systems. Built from the ground up, it represents a complete
departure from traditional caching solutions toward a unified distributed
computing platform with microsecond latencies and collocated processing
capabilities.
+
+<!-- end -->
+
+p
+ strong Forget everything you knew about Apache Ignite.
+ | Version 3.0 is a complete architectural rewrite that transforms Ignite
from a caching platform into a memory-first distributed computing platform with
microsecond latencies and collocated processing.
+
+h3 Architectural Foundation: Schema-Driven Design
+
+p The core architectural shift in Ignite 3 is that your schema becomes the
foundation for data placement, query optimization, and compute job scheduling.
Instead of managing separate systems with different data models, you define
your schema once and it drives everything.
+
+pre
+ code.
+ // Unified platform connection
+ IgniteClient ignite = IgniteClient.builder()
+ .addresses("node1:10800", "node2:10800", "node3:10800")
+ .build();
+
+p
+ strong Schema Creation:
+ | Ignite 3 supports three approaches for schema creation:
+ul
+ li
+ strong SQL DDL
+ | - Traditional
+ code CREATE TABLE
+ | statements
+ li
+ strong Java Annotations API
+ | - POJO markup with
+ code @Table
+ | ,
+ code @Column
+ | , etc.
+ li
+ strong Java Builder API
+ | - Programmatic
+ code TableDefinition.builder()
+ | approach
+
+p We use the Java Annotations API in this blog for their compile-time type
safety and clear colocation syntax.
+
+pre
+ code.
+ @Table(zone = @Zone(value = "MusicStore", storageProfiles = "default"))
+ public class Artist {
+ @Id
+ private Integer ArtistId;
+
+ @Column(value = "Name", length = 120, nullable = false)
+ private String Name;
+
+ // Constructors, getters, setters...
+ }
+
+ @Table(
+ zone = @Zone(value = "MusicStore", storageProfiles = "default"),
+ colocateBy = @ColumnRef("ArtistId"),
+ indexes = @Index(value = "IFK_AlbumArtistId", columns = {
+ @ColumnRef("ArtistId") })
+ )
+ public class Album {
+ @Id
+ private Integer AlbumId;
+
+ @Id
+ private Integer ArtistId;
+
+ @Column(value = "Title", length = 160, nullable = false)
+ private String Title;
+
+ // Constructors, getters, setters...
+ }
+
+p The
+ code colocateBy
+ | annotation ensures that albums are stored on the same nodes as their
corresponding artists, eliminating distributed join overhead and enabling local
processing.
+
+h3 Multiple APIs, Single Schema
+
+p Ignite 3 provides different API views into the same schema, eliminating
impedance mismatch between operational and analytical workloads:
+
+pre
+ code.
+ // RecordView for structured operations
+ RecordView<Artist> artists = ignite.tables()
+ .table("Artist")
+ .recordView(Artist.class);
+
+ // KeyValueView for high-performance access patterns
+ KeyValueView<Long, Album> albums = ignite.tables()
+ .table("Album")
+ .keyValueView(Long.class, Album.class);
+
+ // SQL for analytics using Apache Calcite engine
+ SqlStatement analytics = ignite.sql()
+ .statementBuilder()
+ .query("SELECT a.Name, COUNT(al.AlbumId) as AlbumCount " +
+ "FROM Artist a JOIN Album al ON a.ArtistId = al.ArtistId " +
+ "GROUP BY a.Name");
+
+ // Collocated compute jobs
+ ComputeJob<String> job = ComputeJob.colocated("Artist", 42,
+ RecommendationJob.class);
+ JobExecution<String> recommendation = ignite.compute()
+ .submit(ignite.clusterNodes(), job, "rock");
+
+p This approach eliminates the typical data serialization and movement
overhead between different systems while maintaining type safety and schema
evolution capabilities.
+
+blockquote
+ p This represents a fundamental architectural shift from Ignite 2.x, that
accessed data as key-value operations using the cache API. Ignite 3 puts an
evolvable schema first and uses memory-centric storage to deliver microsecond
latencies for all operations, not just cache hits.
+
+h3 Memory-First Storage Architecture
+
+p Unlike disk-first distributed databases, Ignite 3 uses a memory-first
storage model with configurable persistence options:
+
+ul
+ li
+ strong
+ code aimem
+ | : Pure in-memory storage for maximum performance
+ li
+ strong
+ code aipersist
+ | : Memory-first with persistence for durability
+ li
+ strong
+ code RocksDB
+ | : Disk-based storage for write-heavy workloads
+
+p The memory-first approach delivers microsecond response times for hot data
while providing flexible cost-performance trade-offs through configurable
memory-to-disk ratios.
+
+h4 Storage Engine Characteristics
+
+table(style="border-collapse: collapse; margin: 20px 0; width: 100%;")
+ thead
+ tr
+ th(style="border: 1px solid #ddd; padding: 12px; background-color:
#f5f5f5; text-align: left;") Engine
+ th(style="border: 1px solid #ddd; padding: 12px; background-color:
#f5f5f5; text-align: left;") Primary Use Case
+ th(style="border: 1px solid #ddd; padding: 12px; background-color:
#f5f5f5; text-align: left;") Latency Profile
+ th(style="border: 1px solid #ddd; padding: 12px; background-color:
#f5f5f5; text-align: left;") Durability
+ tbody
+ tr
+ td(style="border: 1px solid #ddd; padding: 12px;") aimem
+ td(style="border: 1px solid #ddd; padding: 12px;") Ultra-low latency
+ td(style="border: 1px solid #ddd; padding: 12px;") Microseconds
+ td(style="border: 1px solid #ddd; padding: 12px;") Volatile
+ tr
+ td(style="border: 1px solid #ddd; padding: 12px;") aipersist
+ td(style="border: 1px solid #ddd; padding: 12px;") Balanced performance
+ td(style="border: 1px solid #ddd; padding: 12px;") Microseconds (memory)
+ td(style="border: 1px solid #ddd; padding: 12px;") Persistent
+ tr
+ td(style="border: 1px solid #ddd; padding: 12px;") RocksDB
+ td(style="border: 1px solid #ddd; padding: 12px;") Write-heavy workloads
+ td(style="border: 1px solid #ddd; padding: 12px;") Variable
+ td(style="border: 1px solid #ddd; padding: 12px;") Persistent
+
+h3 Consistency and Concurrency Model
+
+p Ignite 3 implements Raft consensus for strong consistency and MVCC
(Multi-Version Concurrency Control) for transaction isolation:
+
+ul
+ li
+ strong Raft consensus
+ | : Ensures data consistency across replicas without split-brain scenarios
+ li
+ strong MVCC transactions
+ | : Provides snapshot isolation and deadlock-free concurrency
+ li
+ strong ACID compliance
+ | : Full transactional guarantees across distributed operations
+
+p This consistency model applies uniformly across all APIs, whether you're
using RecordView operations, SQL queries, or compute jobs.
+
+h3 Collocated Processing: Compute-to-Data Architecture
+
+p One of Ignite 3's key architectural advantages is collocated processing,
which brings computation to where data is stored rather than moving data to
compute resources:
+
+pre
+ code.
+ // Traditional approach: data movement overhead
+ // 1. Query data from database
+ // 2. Move data to compute cluster
+ // 3. Process data remotely
+ // 4. Return results
+
+ // Ignite 3 approach: compute colocation
+ ComputeJob<Result> job = ComputeJob.colocated("Customer", customerId,
+ RiskAnalysisJob.class);
+ CompletableFuture<Result> result = ignite.compute()
+ .submitAsync(job, parameters);
+
+p This compute-to-data pattern eliminates network serialization overhead and
enables processing of large datasets without data movement. Instead of moving
terabytes of data to processing nodes, you move kilobytes of code to where the
data lives.
+
+h3 System Consolidation Benefits
+
+p Traditional distributed architectures typically require separate systems for
different workloads:
+
+p
+ strong Traditional Multi-System Architecture:
+
+ul
+ li Transactional database (PostgreSQL, MySQL) - millisecond latencies
+ li Analytics database (ClickHouse, Snowflake) - batch processing
+ li Caching layer (Redis, Hazelcast) - separate consistency model
+ li Compute cluster (Spark, Flink) - data movement overhead
+ li Message queue (Kafka, RabbitMQ) - separate operational model
+ li Stream processing (Kafka Streams, Pulsar) - additional complexity
+
+p
+ strong Ignite 3 Unified Platform:
+
+ul
+ li Schema-driven storage with multiple storage engines - microsecond
latencies
+ li SQL analytics through Apache Calcite - real-time processing
+ li Collocated compute processing - zero data movement
+ li Built-in streaming with flow control - integrated backpressure
+ li ACID transactions across all operations - single consistency model
+ li One operational model and consistency guarantee
+
+h4 Operational Advantages
+
+ul
+ li
+ strong Unified Schema Evolution
+ | : Schema changes propagate automatically across all access patterns
+ li
+ strong Single Consistency Model
+ | : ACID guarantees across transactions, analytics, and compute
+ li
+ strong Reduced Operational Complexity
+ | : One system to monitor, tune, and scale
+ li
+ strong Eliminated Data Movement
+ | : Processing happens where data lives
+ li
+ strong Cost-Elastic Scaling
+ | : Adjust memory-to-disk ratios based on performance requirements
+
+h3 Streaming and Flow Control
+
+p Ignite 3 includes built-in streaming capabilities with configurable
backpressure mechanisms:
+
+pre
+ code.
+ // Publisher with flow control configuration
+ StreamingOptions options = StreamingOptions.builder()
+ .pageSize(1000)
+ .autoFlushFrequency(Duration.ofMillis(100))
+ .retryLimit(3)
+ .build();
+
+ // Handle millions of events with automatic backpressure
+ CompletableFuture<Void> streaming = ignite.sql()
+ .streamAsync("INSERT INTO events VALUES (?, ?, ?)",
+ eventStream,
+ options);
+
+p The streaming API provides automatic flow control through configurable page
sizes, flush intervals, and retry policies, preventing system overload without
data loss.
+
+h3 Performance Characteristics
+
+p Ignite 3's memory-first architecture delivers significantly different
performance characteristics compared to disk-based distributed databases:
+
+ul
+ li
+ strong Latency
+ | : Microsecond response times for memory-resident data vs. millisecond
latencies for disk-based systems
+ li
+ strong Throughput
+ | : Handles millions of operations per second per node
+ li
+ strong Scalability
+ | : Linear scaling through data partitioning and colocation
+ li
+ strong Consistency
+ | : ACID transactions with minimal overhead due to memory speeds
+
+p The 10-1000x performance improvement comes from eliminating disk I/O
bottlenecks and data movement overhead through collocated processing.
+
+h3 Migration and Adoption Strategy
+
+p For technical teams considering Ignite 3:
+
+h4 Assessment Phase
+
+ul
+ li
+ strong Workload Analysis
+ | : Identify performance-critical paths requiring microsecond latencies
+ li
+ strong Data Model Mapping
+ | : Design colocation strategies for your entities
+ li
+ strong Integration Points
+ | : Plan API migration from current multi-system architecture
+ li
+ strong Performance Benchmarking
+ | : Compare memory-first vs. disk-first performance for your workloads
+
+h4 Implementation Approach
+
+ul
+ li
+ strong Start with New Features
+ | : Use Ignite 3 for new development requiring low latency
+ li
+ strong Gradual Migration
+ | : Move performance-critical workloads first
+ li
+ strong Schema Design
+ | : Leverage colocation for optimal data locality
+ li
+ strong Operational Integration
+ | : Integrate monitoring and deployment pipelines
+
+h3 Technical Considerations
+
+h4 Schema Design Best Practices
+
+ul
+ li Use
+ code colocateBy
+ | annotations to ensure related data stays together
+ li Design partition keys to distribute load evenly across nodes
+ li Consider query patterns when defining indexes and colocation strategies
+ li Plan for schema evolution with backward-compatible changes
+
+h4 Performance Optimization
+
+ul
+ li Size memory regions appropriately for your working set
+ li Use collocated compute jobs to minimize data movement
+ li Leverage appropriate storage engines for different workload patterns
+ li Monitor memory usage and adjust disk ratios as needed
+
+h4 Operational Requirements
+
+ul
+ li Plan for Raft consensus network requirements (low-latency, reliable
connectivity)
+ li Design backup and recovery procedures for persistent storage engines
+ li Implement monitoring for memory usage, query performance, and compute job
execution
+ li Establish capacity planning procedures for memory-first architecture
+
+h3 Summary
+
+p Apache Ignite 3 represents a schema-driven distributed computing platform
that consolidates transaction processing, analytics, and compute workloads into
a single memory-first architecture. Key architectural elements include:
+
+ul
+ li
+ strong Schema-driven design
+ | : Single schema definition drives data placement, query optimization,
and compute colocation
+ li
+ strong Memory-first storage
+ | : Multiple storage engines with microsecond latency characteristics
+ li
+ strong Collocated processing
+ | : Compute-to-data architecture that eliminates data movement overhead
+ li
+ strong Unified APIs
+ | : Multiple access patterns (RecordView, KeyValueView, SQL, Compute) for
the same schema
+ li
+ strong ACID consistency
+ | : Raft consensus and MVCC transactions across all operations
+ li
+ strong Built-in streaming
+ | : Flow control and backpressure mechanisms for high-velocity data
ingestion
+
+p The platform addresses scenarios where traditional multi-system
architectures create operational complexity and performance bottlenecks through
data movement between separate databases, compute clusters, and analytics
systems.
+
+p Explore the
+ a(href="https://ignite.apache.org/docs/ignite3/latest/") Ignite 3
documentation
+ | for detailed implementation guides and API references.
\ No newline at end of file
diff --git a/blog/apache/index.html b/blog/apache/index.html
index 9e6380e5f9..1d831ec609 100644
--- a/blog/apache/index.html
+++ b/blog/apache/index.html
@@ -122,7 +122,7 @@
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/"
data-panel="getStarted">Get Started</a></li>
- <li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/features" data-panel="features">Features</a></li>
+ <li class="js-hasdrop"><a class="hdrmenu__current
hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html"
data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/resources.html" data-panel="resources">Resources</a></li>
@@ -341,6 +341,38 @@
<div class="blog__content">
<main class="blog_main">
<section class="blog__posts">
+ <article class="post">
+ <div class="post__header">
+ <h2><a
href="/blog/getting-to-know-apache-ignite-3.html">Getting to Know Apache Ignite
3: A Schema-Driven Distributed Computing Platform</a></h2>
+ <div>
+ November 11, 2025 by Michael Aglietti. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Facebook</a><span>,
</span
+ ><a href="http://twitter.com/home?status=Getting to Know
Apache Ignite 3: A Schema-Driven Distributed Computing
Platform%20https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Twitter</a>
+ </div>
+ </div>
+ <div class="post__content">
+ <p>
+ Apache Ignite 3 is a memory-first distributed SQL database
platform that consolidates transactions, analytics, and compute workloads
previously requiring separate systems. Built from the ground up, it represents
a complete
+ departure from traditional caching solutions toward a
unified distributed computing platform with microsecond latencies and
collocated processing capabilities.
+ </p>
+ </div>
+ <div class="post__footer"><a class="more"
href="/blog/getting-to-know-apache-ignite-3.html">↓ Read all</a></div>
+ </article>
+ <article class="post">
+ <div class="post__header">
+ <h2><a href="/blog/whats-new-in-apache-ignite-3-1.html">Apache
Ignite 3.1: Performance, Multi-Language Client Support, and Production
Hardening</a></h2>
+ <div>
+ November 3, 2025 by Evgeniy Stanilovskiy. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-1.html">Facebook</a><span>,
</span
+ ><a href="http://twitter.com/home?status=Apache Ignite 3.1:
Performance, Multi-Language Client Support, and Production
Hardening%20https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-1.html">Twitter</a>
+ </div>
+ </div>
+ <div class="post__content">
+ <p>
+ Apache Ignite 3.1 improves the three areas that matter most
when running distributed systems: performance at scale, language flexibility,
and operational visibility. The release also fixes hundreds of bugs related to
data
+ corruption, race conditions, and edge cases discovered since
3.0.
+ </p>
+ </div>
+ <div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-1.html">↓ Read all</a></div>
+ </article>
<article class="post">
<div class="post__header">
<h2><a href="/blog/whats-new-in-apache-ignite-3-0.html">What's
New in Apache Ignite 3.0</a></h2>
@@ -534,55 +566,6 @@
</div>
<div class="post__footer"><a class="more"
href="/blog/apache-ignite-community-news-september.html">↓ Read all</a></div>
</article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-community-update-august.html">Apache Ignite Community
Update (August 2017 Issue)</a></h2>
- <div>
- August 30, 2017 by Denis Magda. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-community-update-august.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite
Community Update (August 2017
Issue)%20https://ignite.apache.org/blog/apache-ignite-community-update-august.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- <b><i>by Tom Diederich</i></b>
- </p>
- <p>
- Igniters, here are some community highlights from the last
couple week. If I missed anything, please share it here. Meetups! Did you know
that Apache Ignite experts are available to speak at your meetup? And we also
have
- spots open for YOU to speak at the following meetups that
some of us co-organize:
- </p>
- <ul>
- <li><a href="https://www.meetup.com/Apache-Ignite-London/"
target="_blank">Apache Ignite London</a></li>
- <li><a
href="https://www.meetup.com/Bay-Area-In-Memory-Computing/" target="_blank">Bay
Area In-Memory Computing Meetup</a></li>
- <li><a
href="https://www.meetup.com/NYC-In-Memory-Computing-Meetup/"
target="_blank">NYC In-Memory Computing Meetup</a></li>
- <li><a
href="https://www.meetup.com/Moscow-Apache-Ignite-Meetup/"
target="_blank">Moscow Apache Ignite Meetup</a></li>
- </ul>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-community-update-august.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-1-a.html">Apache Ignite 2.1
- A Leap from In-Memory to Memory-Centric Architecture</a></h2>
- <div>
- July 27, 2017 by Denis Magda. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-1-a.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 2.1 -
A Leap from In-Memory to Memory-Centric
Architecture%20https://ignite.apache.org/blog/apache-ignite-2-1-a.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- The power and beauty of in-memory computing projects are
that they truly do what they state -- deliver outstanding performance
improvements by moving data closer to the CPU, using RAM as a storage and
spreading the data
- sets out across a cluster of machines relying on horizontal
scalability.
- </p>
- <p>
- However, there is an unspoken side of the story. No matter
how fast a platform is, we do not want to lose the data and encounter cluster
restarts or other outages. To guarantee this we need to somehow make data
persistent
- on the disk.
- </p>
- <p>
- Most in-memory computing projects address the persistence
dilemma by giving a way to sync data back to a relational database (RDBMS).
That sounds reasonable and undoubtedly works pretty well in practice, but if we
dig
- deeper, you’ll likely encounter the following
limitations:
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-1-a.html">↓ Read all</a></div>
- </article>
</section>
<section class="blog__footer">
<ul class="pagination">
diff --git a/blog/ignite/index.html b/blog/getting-to-know-apache-ignite-3.html
similarity index 58%
copy from blog/ignite/index.html
copy to blog/getting-to-know-apache-ignite-3.html
index 906751bfd5..3067223238 100644
--- a/blog/ignite/index.html
+++ b/blog/getting-to-know-apache-ignite-3.html
@@ -3,16 +3,11 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1" />
- <title>Entries tagged [ignite]</title>
- <meta property="og:title" content="Entries tagged [ignite]" />
- <link rel="canonical" href="https://ignite.apache.org/blog" />
- <meta property="og:type" content="article" />
- <meta property="og:url" content="https://ignite.apache.org/blog" />
- <meta property="og:image" content="/img/og-pic.png" />
+ <title>Getting to Know Apache Ignite 3: A Schema-Driven Distributed
Computing Platform</title>
<link rel="stylesheet"
href="/js/vendor/hystmodal/hystmodal.min.css?ver=0.9" />
<link rel="stylesheet" href="/css/utils.css?ver=0.9" />
<link rel="stylesheet" href="/css/site.css?ver=0.9" />
- <link rel="stylesheet" href="/css/blog.css?ver=0.9" />
+ <link rel="stylesheet" href="../css/blog.css?ver=0.9" />
<link rel="stylesheet" href="/css/media.css?ver=0.9" media="only screen
and (max-width:1199px)" />
<link rel="icon" type="image/png" href="/img/favicon.png" />
<!-- Matomo -->
@@ -122,7 +117,7 @@
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/"
data-panel="getStarted">Get Started</a></li>
- <li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/features" data-panel="features">Features</a></li>
+ <li class="js-hasdrop"><a class="hdrmenu__current
hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html"
data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/resources.html" data-panel="resources">Resources</a></li>
@@ -337,231 +332,299 @@
<div class="dropmenu__back"></div>
<header class="hdrfloat hdr__white jsHdrFloatBase"></header>
<div class="container blog">
- <section class="blog__header"><h1>Entries tagged [ignite]</h1></section>
+ <section class="blog__header post_page__header">
+ <a href="/blog/">← Apache Ignite Blog</a>
+ <h1>Getting to Know Apache Ignite 3: A Schema-Driven Distributed
Computing Platform</h1>
+ <p>
+ November 11, 2025 by <strong>Michael Aglietti. Share in </strong><a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/undefined">Facebook</a><span>,
</span
+ ><a href="http://twitter.com/home?status=Getting to Know Apache
Ignite 3: A Schema-Driven Distributed Computing
Platform%20https://ignite.apache.org/blog/undefined">Twitter</a>
+ </p>
+ </section>
<div class="blog__content">
<main class="blog_main">
<section class="blog__posts">
<article class="post">
- <div class="post__header">
- <h2><a href="/blog/whats-new-in-apache-ignite-3-1.html">Apache
Ignite 3.1: Performance, Multi-Language Client Support, and Production
Hardening</a></h2>
- <div>
- November 3, 2025 by Evgeniy Stanilovskiy. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-1.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 3.1:
Performance, Multi-Language Client Support, and Production
Hardening%20https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-1.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- Apache Ignite 3.1 targets three areas that matter most when
running distributed systems in production: performance at scale, language
flexibility, and operational visibility. This release also includes hundreds of
bug
- fixes addressing data corruption, race conditions, and edge
cases discovered since 3.0.
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-1.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/whats-new-in-apache-ignite-3-0.html">What's
New in Apache Ignite 3.0</a></h2>
- <div>
- February 24, 2025 by Stanislav Lukyanov. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-0.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=What's New in
Apache Ignite
3.0%20https://ignite.apache.org/blog/whats-new-in-apache-ignite-3-0.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- Apache Ignite 3.0 is the latest milestone in Apache Ignite
evolution that enhances developer experience, platform resilience, and
efficiency. In this article, we’ll explore the key new features and
improvements in Apache
- Ignite 3.0.
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-0.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-17-0.html">Apache Ignite
2.17 Release: What’s New</a></h2>
- <div>
- February 13, 2025 by Nikita Amelchev. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-17-0.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 2.17
Release: What’s
New%20https://ignite.apache.org/blog/apache-ignite-2-17-0.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- We are happy to announce the release of <a
href="https://ignite.apache.org/">Apache Ignite </a>2.17.0! In this latest
version, the Ignite community has introduced a range of new features and
improvements to deliver a more
- efficient, flexible, and future-proof platform. Below, we’ll
cover the key highlights that you can look forward to when upgrading to the new
release.
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-17-0.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-net-intel-cet-fix.html">Ignite on .NET 9 and Intel
CET</a></h2>
- <div>
- November 22, 2024 by Pavel Tupitsyn. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-net-intel-cet-fix.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Ignite on .NET 9
and Intel
CET%20https://ignite.apache.org/blog/apache-ignite-net-intel-cet-fix.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>Old JDK code meets new Intel security feature, JVM + CLR in
one process, and a mysterious crash.</p>
- <p><a href="https://ptupitsyn.github.io/Ignite-on-NET-9/">Read
More...</a></p>
- </div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-16-0.html">Apache Ignite
2.16.0: Cache dumps, Calcite engine stabilization, JDK 14+ bug fixes</a></h2>
- <div>
- December 25, 2023 by Nikita Amelchev. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-16-0.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite
2.16.0: Cache dumps, Calcite engine stabilization, JDK 14+ bug
fixes%20https://ignite.apache.org/blog/apache-ignite-2-16-0.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
+ <div>
<p>
- As of December 25, 2023, <a
href="https://ignite.apache.org/">Apache Ignite </a>2.16 has been released. You
can directly check the full list of resolved <a
href="https://s.apache.org/j3brc">Important JIRA tasks </a>but
- let's briefly overview some valuable improvements.
+ Apache Ignite 3 is a memory-first distributed SQL database
platform that consolidates transactions, analytics, and compute workloads
previously requiring separate systems. Built from the ground up, it represents
a complete
+ departure from traditional caching solutions toward a
unified distributed computing platform with microsecond latencies and
collocated processing capabilities.
</p>
- <h3 id="cache-dumps">Cache dumps</h3>
+ <!-- end -->
<p>
- Ignite has persistent cache <a
href="https://ignite.apache.org/docs/latest/snapshots/snapshots">snapshots
</a>and this feature is highly appreciated by Ignite users. This release
introduces another way to make a copy of
- user data - a cache dump.
+ <strong>Forget everything you knew about Apache
Ignite.</strong> Version 3.0 is a complete architectural rewrite that
transforms Ignite from a caching platform into a memory-first distributed
computing platform with
+ microsecond latencies and collocated processing.
</p>
+ <h3>Architectural Foundation: Schema-Driven Design</h3>
<p>
- The cache dump is essentially a file that contains all
entries of a cache group at the time of dump creation. Dump is consistent like
a snapshot, which means all entries that existed in the cluster at the moment
of dump
- creation will be included in the dump file. Meta information
of dumped caches and binary meta are also included in the dump.
+ The core architectural shift in Ignite 3 is that your schema
becomes the foundation for data placement, query optimization, and compute job
scheduling. Instead of managing separate systems with different data models, you
+ define your schema once and it drives everything.
</p>
- <p>Main differences from cache snapshots:</p>
+ <pre><code>// Unified platform connection
+IgniteClient ignite = IgniteClient.builder()
+ .addresses("node1:10800", "node2:10800", "node3:10800")
+ .build();
+</code></pre>
+ <p><strong>Schema Creation: Ignite 3 supports three approaches
for schema creation:</strong></p>
<ul>
- <li>Supports in-memory caches that a snapshot feature does
not support.</li>
- <li>Takes up less disk space. The dump contains only the
cache entries as-is.</li>
- <li>Can be used for offline data processing.</li>
+ <li><strong>SQL DDL</strong> - Traditional <code>CREATE
TABLE</code> statements</li>
+ <li><strong>Java Annotations API</strong> - POJO markup with
<code>@Table</code>, <code>@Column</code>, etc.</li>
+ <li><strong>Java Builder API</strong> - Programmatic
<code>TableDefinition.builder()</code> approach</li>
</ul>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-16-0.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-net-dynamic-linq.html">Dynamic LINQ performance and
usability with Ignite.NET and System.Linq.Dynamic</a></h2>
- <div>
- May 22, 2023 by Pavel Tupitsyn. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-net-dynamic-linq.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Dynamic LINQ
performance and usability with Ignite.NET and
System.Linq.Dynamic%20https://ignite.apache.org/blog/apache-ignite-net-dynamic-linq.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>Dynamically building database queries can be necessary for
some use cases, such as UI-defined filtering. This can get challenging with
LINQ frameworks like EF Core and Ignite.NET.</p>
- <p><a
href="https://ptupitsyn.github.io/Dynamic-LINQ-With-Ignite/">Read
More...</a></p>
- </div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-13-0.html">Apache Ignite
2.13.0: new Apache Calcite-based SQL engine</a></h2>
- <div>
- April 28, 2022 by Nikita Amelchev. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-13-0.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite
2.13.0: new Apache Calcite-based SQL
engine%20https://ignite.apache.org/blog/apache-ignite-2-13-0.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- As of April 26, 2022, <a
href="https://ignite.apache.org/">Apache Ignite</a> 2.13 has been released. You
can directly check the full list of resolved <a
href="https://s.apache.org/x8u49">Important JIRA tasks</a> but here
- let's briefly overview some valuable improvements.
- </p>
- <h4>This is a breaking change release: The legacy service grid
implementation was removed.</h4>
- <h3 id="new-apache-calcite-based-sql-engine">New Apache
Calcite-based SQL engine</h3>
- <p>We've implemented a new experimental SQL engine based
on Apache Calcite. Now it's possible to:</p>
+ <p>We use the Java Annotations API in this blog for their
compile-time type safety and clear colocation syntax.</p>
+ <pre><code>@Table(zone = @Zone(value = "MusicStore",
storageProfiles = "default"))
+public class Artist {
+ @Id
+ private Integer ArtistId;
+
+ @Column(value = "Name", length = 120, nullable = false)
+ private String Name;
+
+ // Constructors, getters, setters...
+}
+
+@Table(
+ zone = @Zone(value = "MusicStore", storageProfiles = "default"),
+ colocateBy = @ColumnRef("ArtistId"),
+ indexes = @Index(value = "IFK_AlbumArtistId", columns = {
+ @ColumnRef("ArtistId") })
+)
+public class Album {
+ @Id
+ private Integer AlbumId;
+
+ @Id
+ private Integer ArtistId;
+
+ @Column(value = "Title", length = 160, nullable = false)
+ private String Title;
+
+ // Constructors, getters, setters...
+}
+</code></pre>
+ <p>The <code>colocateBy</code> annotation ensures that albums
are stored on the same nodes as their corresponding artists, eliminating
distributed join overhead and enabling local processing.</p>
+ <h3>Multiple APIs, Single Schema</h3>
+ <p>Ignite 3 provides different API views into the same schema,
eliminating impedance mismatch between operational and analytical workloads:</p>
+ <pre><code>// RecordView for structured operations
+RecordView<Artist> artists = ignite.tables()
+ .table("Artist")
+ .recordView(Artist.class);
+
+// KeyValueView for high-performance access patterns
+KeyValueView<Long, Album> albums = ignite.tables()
+ .table("Album")
+ .keyValueView(Long.class, Album.class);
+
+// SQL for analytics using Apache Calcite engine
+SqlStatement analytics = ignite.sql()
+ .statementBuilder()
+ .query("SELECT a.Name, COUNT(al.AlbumId) as AlbumCount " +
+ "FROM Artist a JOIN Album al ON a.ArtistId = al.ArtistId " +
+ "GROUP BY a.Name");
+
+// Collocated compute jobs
+ComputeJob<String> job = ComputeJob.colocated("Artist", 42,
+ RecommendationJob.class);
+JobExecution<String> recommendation = ignite.compute()
+ .submit(ignite.clusterNodes(), job, "rock");
+</code></pre>
+ <p>This approach eliminates the typical data serialization and
movement overhead between different systems while maintaining type safety and
schema evolution capabilities.</p>
+ <blockquote>
+ <p>
+ This represents a fundamental architectural shift from
Ignite 2.x, that accessed data as key-value operations using the cache API.
Ignite 3 puts an evolvable schema first and uses memory-centric storage to
deliver
+ microsecond latencies for all operations, not just cache
hits.
+ </p>
+ </blockquote>
+ <h3>Memory-First Storage Architecture</h3>
+ <p>Unlike disk-first distributed databases, Ignite 3 uses a
memory-first storage model with configurable persistence options:</p>
<ul>
- <li>Get rid of some <a
href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-37%3A+New+query+execution+engine#IEP37:Newqueryexecutionengine-Motivation">H2
limitations</a>;</li>
- <li><a
href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-37%3A+New+query+execution+engine#IEP37:Newqueryexecutionengine-Implementationdetails">Optimize</a>
some query execution.</li>
+ <li>
+ <strong><code>aimem</code></strong
+ >: Pure in-memory storage for maximum performance
+ </li>
+ <li>
+ <strong><code>aipersist</code></strong
+ >: Memory-first with persistence for durability
+ </li>
+ <li>
+ <strong><code>RocksDB</code></strong
+ >: Disk-based storage for write-heavy workloads
+ </li>
</ul>
- <p>The current H2-based engine has fundamental limitations.
For example:</p>
+ <p>The memory-first approach delivers microsecond response
times for hot data while providing flexible cost-performance trade-offs through
configurable memory-to-disk ratios.</p>
+ <h4>Storage Engine Characteristics</h4>
+ <table style="border-collapse: collapse; margin: 20px 0;
width: 100%">
+ <thead>
+ <tr>
+ <th style="border: 1px solid #ddd; padding: 12px;
background-color: #f5f5f5; text-align: left">Engine</th>
+ <th style="border: 1px solid #ddd; padding: 12px;
background-color: #f5f5f5; text-align: left">Primary Use Case</th>
+ <th style="border: 1px solid #ddd; padding: 12px;
background-color: #f5f5f5; text-align: left">Latency Profile</th>
+ <th style="border: 1px solid #ddd; padding: 12px;
background-color: #f5f5f5; text-align: left">Durability</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="border: 1px solid #ddd; padding:
12px">aimem</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Ultra-low latency</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Microseconds</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Volatile</td>
+ </tr>
+ <tr>
+ <td style="border: 1px solid #ddd; padding:
12px">aipersist</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Balanced performance</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Microseconds (memory)</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Persistent</td>
+ </tr>
+ <tr>
+ <td style="border: 1px solid #ddd; padding:
12px">RocksDB</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Write-heavy workloads</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Variable</td>
+ <td style="border: 1px solid #ddd; padding:
12px">Persistent</td>
+ </tr>
+ </tbody>
+ </table>
+ <h3>Consistency and Concurrency Model</h3>
+ <p>Ignite 3 implements Raft consensus for strong consistency
and MVCC (Multi-Version Concurrency Control) for transaction isolation:</p>
<ul>
- <li>some queries should be splitted into 2 phases (map
subquery and reduce subquery), but some of them cannot be effectively executed
in 2 phases.</li>
- <li>H2 is a third-party database product with not-ASF
license.</li>
- <li>The optimizer and other internal things are not supposed
to work in a distributed environment.</li>
- <li>It's hard to make Ignite-specific changes to the H2
code, patches are often declined.</li>
+ <li><strong>Raft consensus</strong>: Ensures data
consistency across replicas without split-brain scenarios</li>
+ <li><strong>MVCC transactions</strong>: Provides snapshot
isolation and deadlock-free concurrency</li>
+ <li><strong>ACID compliance</strong>: Full transactional
guarantees across distributed operations</li>
</ul>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-13-0.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-12-0.html">Apache Ignite
2.12.0: CDC, Index Query API, Vulnerabilities Fixes</a></h2>
- <div>
- January 14, 2022 by Nikita Amelchev. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-12-0.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite
2.12.0: CDC, Index Query API, Vulnerabilities
Fixes%20https://ignite.apache.org/blog/apache-ignite-2-12-0.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- As of January 14, 2022, <a
href="https://ignite.apache.org/">Apache Ignite</a> 2.12 has been released. You
can directly check the full list of resolved <a
href="https://s.apache.org/0zyi2">Important JIRA tasks</a> but here
- let’s briefly overview some valuable improvements.
- </p>
- <h3 id="vulnerability-updates">Vulnerability Updates</h3>
- <p>
- The Apache Ignite versions lower than 2.11.1 are vulnerable
to <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44832">CVE-2021-44832</a>
which is related to the <code>ignite-log4j2</code> module usage.
- </p>
- <p>The release also fixes 10+ CVE’s of various modules.
See <a
href="https://ignite.apache.org/releases/ignite2/2.12.0/release_notes.html">release
notes</a> for more details.</p>
- <h3 id="change-data-capture">Change Data Capture</h3>
+ <p>This consistency model applies uniformly across all APIs,
whether you're using RecordView operations, SQL queries, or compute jobs.</p>
+ <h3>Collocated Processing: Compute-to-Data Architecture</h3>
+ <p>One of Ignite 3's key architectural advantages is
collocated processing, which brings computation to where data is stored rather
than moving data to compute resources:</p>
+ <pre><code>// Traditional approach: data movement overhead
+// 1. Query data from database
+// 2. Move data to compute cluster
+// 3. Process data remotely
+// 4. Return results
+
+// Ignite 3 approach: compute colocation
+ComputeJob<Result> job = ComputeJob.colocated("Customer", customerId,
+ RiskAnalysisJob.class);
+CompletableFuture<Result> result = ignite.compute()
+ .submitAsync(job, parameters);
+</code></pre>
<p>
- Change Data Capture (<a
href="https://en.wikipedia.org/wiki/Change_data_capture">CDC</a>) is a data
processing pattern used to asynchronously receive entries that have been
changed on the local node so that action can be
- taken using the changed entry.
+ This compute-to-data pattern eliminates network
serialization overhead and enables processing of large datasets without data
movement. Instead of moving terabytes of data to processing nodes, you move
kilobytes of code to
+ where the data lives.
</p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-12-0.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a href="/blog/apache-ignite-2-11-1.html">Apache Ignite
2.11.1: Emergency Log4j2 Update</a></h2>
- <div>
- December 21, 2021 by Maxim Muzafarov. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-11-1.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite
2.11.1: Emergency Log4j2
Update%20https://ignite.apache.org/blog/apache-ignite-2-11-1.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- The new <a href="https://ignite.apache.org/">Apache
Ignite</a> 2.11.1 is an emergency release that fixes <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228">CVE-2021-44228</a>,
- <a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046">CVE-2021-45046</a>,<a
href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45105">CVE-2021-45105</a>
related to the ignite-log4j2 module
- usage.
- </p>
- <h3 id="apache-ignite-with-log4j-vulnerability">Apache Ignite
with Log4j Vulnerability</h3>
- <p>All the following conditions must be met:</p>
+ <h3>System Consolidation Benefits</h3>
+ <p>Traditional distributed architectures typically require
separate systems for different workloads:</p>
+ <p><strong>Traditional Multi-System Architecture:</strong></p>
<ul>
- <li>The Apache Ignite version lower than 2.11.0 is used
(since these vulnerabilities are already fixed in 2.11.1, 2.12, and upper
versions);</li>
- <li>The <code>ignite-logj42</code> is used by Apache Ignite
and located in the <code>libs</code> directory (by default it is located in the
<code>libs/optional</code>directory, so these deployments are not
affected);</li>
- <li>
- The Java version in use is older than the following
versions: <code>8u191</code>, <code>11.0.1</code>. This is due to the fact that
later versions set the JVM property
- <code>com.sun.jndi.ldap.object.trustURLCodebase</code> to
<code>false</code> by default, which disables JNDI loading of classes from
arbitrary URL code bases.
- </li>
+ <li>Transactional database (PostgreSQL, MySQL) - millisecond
latencies</li>
+ <li>Analytics database (ClickHouse, Snowflake) - batch
processing</li>
+ <li>Caching layer (Redis, Hazelcast) - separate consistency
model</li>
+ <li>Compute cluster (Spark, Flink) - data movement
overhead</li>
+ <li>Message queue (Kafka, RabbitMQ) - separate operational
model</li>
+ <li>Stream processing (Kafka Streams, Pulsar) - additional
complexity</li>
</ul>
- <p>NOTE: Relying only on the Java version as a protection
against these vulnerabilities is very risky and has not been tested.</p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-1.html">↓ Read all</a></div>
- </article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-2-11-stabilization.html">Apache Ignite 2.11:
Stabilization First</a></h2>
- <div>
- September 20, 2021 by Maxim Muzafarov. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 2.11:
Stabilization
First%20https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- The new <a href="https://ignite.apache.org/">Apache
Ignite</a> 2.11 was released on September 17, 2021. It can be considered to be
a greater extent as a stabilization release that closed a number of technical
debts of the
- internal architecture and bugs. Out of more than 200
completed tasks, 120 are bug fixes. However, some valuable improvements still
exist, so let's take a quick look at them together.
- </p>
- <h3 id="thin-clients">Thin Clients</h3>
+ <p><strong>Ignite 3 Unified Platform:</strong></p>
+ <ul>
+ <li>Schema-driven storage with multiple storage engines -
microsecond latencies</li>
+ <li>SQL analytics through Apache Calcite - real-time
processing</li>
+ <li>Collocated compute processing - zero data movement</li>
+ <li>Built-in streaming with flow control - integrated
backpressure</li>
+ <li>ACID transactions across all operations - single
consistency model</li>
+ <li>One operational model and consistency guarantee</li>
+ </ul>
+ <h4>Operational Advantages</h4>
+ <ul>
+ <li><strong>Unified Schema Evolution</strong>: Schema
changes propagate automatically across all access patterns</li>
+ <li><strong>Single Consistency Model</strong>: ACID
guarantees across transactions, analytics, and compute</li>
+ <li><strong>Reduced Operational Complexity</strong>: One
system to monitor, tune, and scale</li>
+ <li><strong>Eliminated Data Movement</strong>: Processing
happens where data lives</li>
+ <li><strong>Cost-Elastic Scaling</strong>: Adjust
memory-to-disk ratios based on performance requirements</li>
+ </ul>
+ <h3>Streaming and Flow Control</h3>
+ <p>Ignite 3 includes built-in streaming capabilities with
configurable backpressure mechanisms:</p>
+ <pre><code>// Publisher with flow control configuration
+StreamingOptions options = StreamingOptions.builder()
+ .pageSize(1000)
+ .autoFlushFrequency(Duration.ofMillis(100))
+ .retryLimit(3)
+ .build();
+
+// Handle millions of events with automatic backpressure
+CompletableFuture<Void> streaming = ignite.sql()
+ .streamAsync("INSERT INTO events VALUES (?, ?, ?)",
+ eventStream,
+ options);
+</code></pre>
+ <p>The streaming API provides automatic flow control through
configurable page sizes, flush intervals, and retry policies, preventing system
overload without data loss.</p>
+ <h3>Performance Characteristics</h3>
+ <p>Ignite 3's memory-first architecture delivers significantly
different performance characteristics compared to disk-based distributed
databases:</p>
+ <ul>
+ <li><strong>Latency</strong>: Microsecond response times for
memory-resident data vs. millisecond latencies for disk-based systems</li>
+ <li><strong>Throughput</strong>: Handles millions of
operations per second per node</li>
+ <li><strong>Scalability</strong>: Linear scaling through
data partitioning and colocation</li>
+ <li><strong>Consistency</strong>: ACID transactions with
minimal overhead due to memory speeds</li>
+ </ul>
+ <p>The 10-1000x performance improvement comes from eliminating
disk I/O bottlenecks and data movement overhead through collocated
processing.</p>
+ <h3>Migration and Adoption Strategy</h3>
+ <p>For technical teams considering Ignite 3:</p>
+ <h4>Assessment Phase</h4>
+ <ul>
+ <li><strong>Workload Analysis</strong>: Identify
performance-critical paths requiring microsecond latencies</li>
+ <li><strong>Data Model Mapping</strong>: Design colocation
strategies for your entities</li>
+ <li><strong>Integration Points</strong>: Plan API migration
from current multi-system architecture</li>
+ <li><strong>Performance Benchmarking</strong>: Compare
memory-first vs. disk-first performance for your workloads</li>
+ </ul>
+ <h4>Implementation Approach</h4>
+ <ul>
+ <li><strong>Start with New Features</strong>: Use Ignite 3
for new development requiring low latency</li>
+ <li><strong>Gradual Migration</strong>: Move
performance-critical workloads first</li>
+ <li><strong>Schema Design</strong>: Leverage colocation for
optimal data locality</li>
+ <li><strong>Operational Integration</strong>: Integrate
monitoring and deployment pipelines</li>
+ </ul>
+ <h3>Technical Considerations</h3>
+ <h4>Schema Design Best Practices</h4>
+ <ul>
+ <li>Use <code>colocateBy</code> annotations to ensure
related data stays together</li>
+ <li>Design partition keys to distribute load evenly across
nodes</li>
+ <li>Consider query patterns when defining indexes and
colocation strategies</li>
+ <li>Plan for schema evolution with backward-compatible
changes</li>
+ </ul>
+ <h4>Performance Optimization</h4>
+ <ul>
+ <li>Size memory regions appropriately for your working
set</li>
+ <li>Use collocated compute jobs to minimize data
movement</li>
+ <li>Leverage appropriate storage engines for different
workload patterns</li>
+ <li>Monitor memory usage and adjust disk ratios as
needed</li>
+ </ul>
+ <h4>Operational Requirements</h4>
+ <ul>
+ <li>Plan for Raft consensus network requirements
(low-latency, reliable connectivity)</li>
+ <li>Design backup and recovery procedures for persistent
storage engines</li>
+ <li>Implement monitoring for memory usage, query
performance, and compute job execution</li>
+ <li>Establish capacity planning procedures for memory-first
architecture</li>
+ </ul>
+ <h3>Summary</h3>
<p>
- Partition awareness is enabled by default in the 2.11
release and allows thin clients to send query requests directly to the node
that owns the queried data. Without partition awareness, an application
executes all queries
- and operations via a single server node that acts as a proxy
for the incoming requests.
+ Apache Ignite 3 represents a schema-driven distributed
computing platform that consolidates transaction processing, analytics, and
compute workloads into a single memory-first architecture. Key architectural
elements
+ include:
</p>
+ <ul>
+ <li><strong>Schema-driven design</strong>: Single schema
definition drives data placement, query optimization, and compute
colocation</li>
+ <li><strong>Memory-first storage</strong>: Multiple storage
engines with microsecond latency characteristics</li>
+ <li><strong>Collocated processing</strong>: Compute-to-data
architecture that eliminates data movement overhead</li>
+ <li><strong>Unified APIs</strong>: Multiple access patterns
(RecordView, KeyValueView, SQL, Compute) for the same schema</li>
+ <li><strong>ACID consistency</strong>: Raft consensus and
MVCC transactions across all operations</li>
+ <li><strong>Built-in streaming</strong>: Flow control and
backpressure mechanisms for high-velocity data ingestion</li>
+ </ul>
<p>
- The support of <a
href="https://ignite.apache.org/docs/latest/thin-clients/java-thin-client#cache-entry-listening">Continuous
Queries</a>added to the java thin client. For the other supported features,
you can check - the
- <a
href="https://cwiki.apache.org/confluence/display/IGNITE/Thin+clients+features">List
of Thin Client Features</a>.
+ The platform addresses scenarios where traditional
multi-system architectures create operational complexity and performance
bottlenecks through data movement between separate databases, compute clusters,
and analytics
+ systems.
</p>
+ <p>Explore the <a
href="https://ignite.apache.org/docs/ignite3/latest/">Ignite 3
documentation</a> for detailed implementation guides and API references.</p>
</div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-stabilization.html">↓ Read all</a></div>
</article>
- </section>
- <section class="blog__footer">
- <ul class="pagination">
- <li><a class="current" href="/blog/ignite">1</a></li>
- <li><a class="item" href="/blog/ignite/1/">2</a></li>
- <li><a class="item" href="/blog/ignite/2/">3</a></li>
- </ul>
+ <section class="blog__footer">
+ <ul class="pagination post_page">
+ <li><a href="/blog/apache">apache</a></li>
+ <li><a href="/blog/ignite">ignite</a></li>
+ </ul>
+ </section>
</section>
</main>
<aside class="blog__sidebar">
diff --git a/blog/ignite/index.html b/blog/ignite/index.html
index 906751bfd5..894825c082 100644
--- a/blog/ignite/index.html
+++ b/blog/ignite/index.html
@@ -122,7 +122,7 @@
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/"
data-panel="getStarted">Get Started</a></li>
- <li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/features" data-panel="features">Features</a></li>
+ <li class="js-hasdrop"><a class="hdrmenu__current
hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html"
data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/resources.html" data-panel="resources">Resources</a></li>
@@ -341,6 +341,22 @@
<div class="blog__content">
<main class="blog_main">
<section class="blog__posts">
+ <article class="post">
+ <div class="post__header">
+ <h2><a
href="/blog/getting-to-know-apache-ignite-3.html">Getting to Know Apache Ignite
3: A Schema-Driven Distributed Computing Platform</a></h2>
+ <div>
+ November 11, 2025 by Michael Aglietti. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Facebook</a><span>,
</span
+ ><a href="http://twitter.com/home?status=Getting to Know
Apache Ignite 3: A Schema-Driven Distributed Computing
Platform%20https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Twitter</a>
+ </div>
+ </div>
+ <div class="post__content">
+ <p>
+ Apache Ignite 3 is a memory-first distributed SQL database
platform that consolidates transactions, analytics, and compute workloads
previously requiring separate systems. Built from the ground up, it represents
a complete
+ departure from traditional caching solutions toward a
unified distributed computing platform with microsecond latencies and
collocated processing capabilities.
+ </p>
+ </div>
+ <div class="post__footer"><a class="more"
href="/blog/getting-to-know-apache-ignite-3.html">↓ Read all</a></div>
+ </article>
<article class="post">
<div class="post__header">
<h2><a href="/blog/whats-new-in-apache-ignite-3-1.html">Apache
Ignite 3.1: Performance, Multi-Language Client Support, and Production
Hardening</a></h2>
@@ -351,8 +367,8 @@
</div>
<div class="post__content">
<p>
- Apache Ignite 3.1 targets three areas that matter most when
running distributed systems in production: performance at scale, language
flexibility, and operational visibility. This release also includes hundreds of
bug
- fixes addressing data corruption, race conditions, and edge
cases discovered since 3.0.
+ Apache Ignite 3.1 improves the three areas that matter most
when running distributed systems: performance at scale, language flexibility,
and operational visibility. The release also fixes hundreds of bugs related to
data
+ corruption, race conditions, and edge cases discovered since
3.0.
</p>
</div>
<div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-1.html">↓ Read all</a></div>
@@ -530,31 +546,6 @@
</div>
<div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-1.html">↓ Read all</a></div>
</article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-2-11-stabilization.html">Apache Ignite 2.11:
Stabilization First</a></h2>
- <div>
- September 20, 2021 by Maxim Muzafarov. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 2.11:
Stabilization
First%20https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- The new <a href="https://ignite.apache.org/">Apache
Ignite</a> 2.11 was released on September 17, 2021. It can be considered to be
a greater extent as a stabilization release that closed a number of technical
debts of the
- internal architecture and bugs. Out of more than 200
completed tasks, 120 are bug fixes. However, some valuable improvements still
exist, so let's take a quick look at them together.
- </p>
- <h3 id="thin-clients">Thin Clients</h3>
- <p>
- Partition awareness is enabled by default in the 2.11
release and allows thin clients to send query requests directly to the node
that owns the queried data. Without partition awareness, an application
executes all queries
- and operations via a single server node that acts as a proxy
for the incoming requests.
- </p>
- <p>
- The support of <a
href="https://ignite.apache.org/docs/latest/thin-clients/java-thin-client#cache-entry-listening">Continuous
Queries</a>added to the java thin client. For the other supported features,
you can check - the
- <a
href="https://cwiki.apache.org/confluence/display/IGNITE/Thin+clients+features">List
of Thin Client Features</a>.
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-stabilization.html">↓ Read all</a></div>
- </article>
</section>
<section class="blog__footer">
<ul class="pagination">
diff --git a/blog/index.html b/blog/index.html
index ac032d89ea..fe1985ef38 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -122,7 +122,7 @@
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/"
data-panel="getStarted">Get Started</a></li>
- <li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/features" data-panel="features">Features</a></li>
+ <li class="js-hasdrop"><a class="hdrmenu__current
hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html"
data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/resources.html" data-panel="resources">Resources</a></li>
@@ -341,6 +341,22 @@
<div class="blog__content">
<main class="blog_main">
<section class="blog__posts">
+ <article class="post">
+ <div class="post__header">
+ <h2><a
href="/blog/getting-to-know-apache-ignite-3.html">Getting to Know Apache Ignite
3: A Schema-Driven Distributed Computing Platform</a></h2>
+ <div>
+ November 11, 2025 by Michael Aglietti. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Facebook</a><span>,
</span
+ ><a href="http://twitter.com/home?status=Getting to Know
Apache Ignite 3: A Schema-Driven Distributed Computing
Platform%20https://ignite.apache.org/blog/getting-to-know-apache-ignite-3.html">Twitter</a>
+ </div>
+ </div>
+ <div class="post__content">
+ <p>
+ Apache Ignite 3 is a memory-first distributed SQL database
platform that consolidates transactions, analytics, and compute workloads
previously requiring separate systems. Built from the ground up, it represents
a complete
+ departure from traditional caching solutions toward a
unified distributed computing platform with microsecond latencies and
collocated processing capabilities.
+ </p>
+ </div>
+ <div class="post__footer"><a class="more"
href="/blog/getting-to-know-apache-ignite-3.html">↓ Read all</a></div>
+ </article>
<article class="post">
<div class="post__header">
<h2><a href="/blog/whats-new-in-apache-ignite-3-1.html">Apache
Ignite 3.1: Performance, Multi-Language Client Support, and Production
Hardening</a></h2>
@@ -351,8 +367,8 @@
</div>
<div class="post__content">
<p>
- Apache Ignite 3.1 targets three areas that matter most when
running distributed systems in production: performance at scale, language
flexibility, and operational visibility. This release also includes hundreds of
bug
- fixes addressing data corruption, race conditions, and edge
cases discovered since 3.0.
+ Apache Ignite 3.1 improves the three areas that matter most
when running distributed systems: performance at scale, language flexibility,
and operational visibility. The release also fixes hundreds of bugs related to
data
+ corruption, race conditions, and edge cases discovered since
3.0.
</p>
</div>
<div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-1.html">↓ Read all</a></div>
@@ -530,31 +546,6 @@
</div>
<div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-1.html">↓ Read all</a></div>
</article>
- <article class="post">
- <div class="post__header">
- <h2><a
href="/blog/apache-ignite-2-11-stabilization.html">Apache Ignite 2.11:
Stabilization First</a></h2>
- <div>
- September 20, 2021 by Maxim Muzafarov. Share in <a
href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Facebook</a><span>,
</span
- ><a href="http://twitter.com/home?status=Apache Ignite 2.11:
Stabilization
First%20https://ignite.apache.org/blog/apache-ignite-2-11-stabilization.html">Twitter</a>
- </div>
- </div>
- <div class="post__content">
- <p>
- The new <a href="https://ignite.apache.org/">Apache
Ignite</a> 2.11 was released on September 17, 2021. It can be considered to be
a greater extent as a stabilization release that closed a number of technical
debts of the
- internal architecture and bugs. Out of more than 200
completed tasks, 120 are bug fixes. However, some valuable improvements still
exist, so let's take a quick look at them together.
- </p>
- <h3 id="thin-clients">Thin Clients</h3>
- <p>
- Partition awareness is enabled by default in the 2.11
release and allows thin clients to send query requests directly to the node
that owns the queried data. Without partition awareness, an application
executes all queries
- and operations via a single server node that acts as a proxy
for the incoming requests.
- </p>
- <p>
- The support of <a
href="https://ignite.apache.org/docs/latest/thin-clients/java-thin-client#cache-entry-listening">Continuous
Queries</a>added to the java thin client. For the other supported features,
you can check - the
- <a
href="https://cwiki.apache.org/confluence/display/IGNITE/Thin+clients+features">List
of Thin Client Features</a>.
- </p>
- </div>
- <div class="post__footer"><a class="more"
href="/blog/apache-ignite-2-11-stabilization.html">↓ Read all</a></div>
- </article>
</section>
<section class="blog__footer">
<ul class="pagination">
diff --git a/blog/release/index.html b/blog/release/index.html
index 09ed8bce63..11f4608da6 100644
--- a/blog/release/index.html
+++ b/blog/release/index.html
@@ -122,7 +122,7 @@
<nav class="hdrmenu">
<ul class="flexi">
<li class="js-hasdrop"><a class="hdrmenu--expanded" href="/"
data-panel="getStarted">Get Started</a></li>
- <li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/features" data-panel="features">Features</a></li>
+ <li class="js-hasdrop"><a class="hdrmenu__current
hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/community.html" data-panel="community">Community</a></li>
<li><a href="/use-cases/provenusecases.html"
data-panel="">Powered By</a></li>
<li class="js-hasdrop"><a class="hdrmenu--expanded"
href="/resources.html" data-panel="resources">Resources</a></li>
@@ -351,8 +351,8 @@
</div>
<div class="post__content">
<p>
- Apache Ignite 3.1 targets three areas that matter most when
running distributed systems in production: performance at scale, language
flexibility, and operational visibility. This release also includes hundreds of
bug
- fixes addressing data corruption, race conditions, and edge
cases discovered since 3.0.
+ Apache Ignite 3.1 improves the three areas that matter most
when running distributed systems: performance at scale, language flexibility,
and operational visibility. The release also fixes hundreds of bugs related to
data
+ corruption, race conditions, and edge cases discovered since
3.0.
</p>
</div>
<div class="post__footer"><a class="more"
href="/blog/whats-new-in-apache-ignite-3-1.html">↓ Read all</a></div>