maglietti commented on code in PR #282:
URL: https://github.com/apache/ignite-website/pull/282#discussion_r2510781391


##########
_src/_blog/getting-to-know-apache-ignite-3.pug:
##########
@@ -0,0 +1,386 @@
+---
+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 over four years of 
development, it represents a complete departure from traditional caching 
solutions toward a unified distributed computing platform with microsecond 
latencies and collocated processing capabilities.

Review Comment:
   Please remove "over four years of development". I is unnecessary.



##########
_src/_blog/getting-to-know-apache-ignite-3.pug:
##########
@@ -0,0 +1,386 @@
+---
+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 over four years of 
development, 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 Schema definitions use Java annotations to specify colocation strategies, 
storage profiles, and indexing:

Review Comment:
   I think that this was intended to be a note. 



##########
_src/_blog/getting-to-know-apache-ignite-3.pug:
##########
@@ -0,0 +1,386 @@
+---
+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 over four years of 
development, 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 Schema definitions use Java annotations to specify colocation strategies, 
storage profiles, and indexing:
+
+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&lt;Artist&gt; artists = ignite.tables()
+        .table("Artist")
+        .recordView(Artist.class);
+
+    // KeyValueView for high-performance access patterns
+    KeyValueView&lt;Long, Album&gt; 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&lt;String&gt; job = ComputeJob.colocated("Artist", 42,
+        RecommendationJob.class);
+    JobExecution&lt;String&gt; 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, which 
treated everything as key-value operations in a cache. Ignite 3 puts an 
evolvable schema first and uses memory-centric storage to deliver microsecond 
latencies for all operations, not just cache hits.

Review Comment:
   Replace:
   
   "...which treated everything as key-value operations in a cache."
   
   With:
   
   "...that accessed data as key-value operations using the cache API."



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to