Site Rules
No offensive content
Please be nice :)
No spreading of any copyrighted material
No spamming or advertising
FAQ
Preface
What this book covers
Code Samples
Readership
Conventions
Reader feedback
About the authors
Acknowledgments
Chapter 1. Introduction
Chapter 2. Getting started with Apache Ignite
Installing and setting up Apache Ignite
Building from source code
Running multiple instances of the Apache Ignite in a single host
Running Apache Ignite in Docker containers
Using Apache Ignite SQLLINE CLI
Meet with Apache Ignite SQL engine: H2 database
Using a universal SQL client IDE to work with Apache Ignite
First Java application
Apache Ignite thin client
Using REST API for manipulating the Apache Ignite caches
Configuring a multi-node Ignite cluster in different hosts
A simple checklist for beginners
Summary
What’s next?
Chapter 3. Apache Ignite use cases
Caching for fast data access
HTAP
High-volume transaction processing
Fast data processing
Lambda architecture
Resilient web acceleration
Microservices in distributed fashion
Cache as a service
Big Data accelerations
In-memory machine learning
In-memory geospatial
Cluster management
Summary
What’s next?
Chapter 4. Architecture deep dive
Functional overview
Understanding the cluster topology: shared-nothing architecture
Client and server node
Embedded with the application
Client and the server nodes in the same host
Running multiple nodes within single JVM
Real cluster topology
Data partitioning in Ignite
Understanding data distribution: DHT
Rendezvous hashing
Replication
Master-Slave replication
Peer-to-peer replication
Partitioned mode
Replicated mode
Local mode
Near cache
Partition loss policies
Caching strategy
Cache a-side
Read through and write through
Write behind
Ignite data model
CAP theorem and where does Ignite stand in?
Apache Ignite life cycle
Memory-Centric storage
Durable memory architecture
Page
Data Page
Index pages and B+ trees
Segments
Region
Data eviction
Page based eviction
Entry based eviction
Data expiration
Ignite read/write path
Native persistence
Write-Ahead-Log (WAL)
Checkpointing
Baseline topology
Automatic cluster activation
Split-brain protection
Fast rebalancing and it’s pitfalls
Tool to control baseline topology
Automate the rebalancing
Discovery and communication mechanisms
Discovery
Communication
Cluster groups
Predefined cluster group
Cluster group with node attributes
Custom cluster group
Data collocation
Compute collocation with data
Protocols and clients
Resilience & Automatic failover
Ignite client node
Ignite thin client
JDBC client
Ignite Rest client
Multi data center replication
Key API’s
Summary
What’s next?
Chapter 5. Intelligent caching
Smart caching
Caching best practices
Design patterns
Basic terms
Database caching
Hibernate caching
MyBatis caching
Memoization
Web session clustering
Classic solution 1: using a sticky session
Classic solution 2: store sessions in DB
Classic solution 3: use only stateless service
Distributed web session clustering
Prepare the caches correctly
Summary
What’s next?
Chapter 6. Database
Ignite tables & indexes configuration
Ignite queries
SQL queries
Query API
SqlFieldsQuery
SqlQuery
How SQL queries works in Ignite
Cache queries
Scan queries
Text queries
Affinity collocation based data modeling
Collocated distributed joins
Non-collocated distributed joins
Spring Data integration
Apache Ignite with JPA
Persistence
Native persistence
Persistence in 3 party database (MongoDB)
Transaction
Ignite transactions
Transaction commit protocols
Node types (NearNode/Remote/DHT)
Concurrency Modes and Isolation Levels
MVCC
Performance impact on transaction
Summary
What’s next?
Chapter 7. Distributed computing
Compute grid
Distributed Closures
MapReduce and Fork-join
Per-Node share state
Distributed task session
Fault tolerance and checkpointing
Collocation of computation and data
Job scheduling
Service Grid
Developing services
Cluster singleton
Service management and configuration
Developing microservices in Apache Ignite
Summary
What’s next?
Chapter 8. Streaming and complex event processing
Kafka Streamer
IgniteSinkConnector
IgniteSourceConnector
Camel Streamer
Direct Ingestion
Mediated Ingestion
Flume sink
Storm streamer
Summary
What’s next?
Chapter 9. Accelerating Big data computing
Ignite for Apache Spark
Apache Spark – a short history
Ignite RDD
Ignite DataFrame
Summary
What’s next?
Chapter 10. Management and monitoring
Managing Ignite cluster
Configuring Zookeeper discovery
Managing Baseline topology
Monitoring Ignite cluster
VisualVM
Grafana
Summary