The Apache Ignite Book

The Apache Ignite Book

This book is addressed to anyone interested in learning in-memory computing and distributed database. It is useful for developers and architects new to Apache Ignite as well as those who already use any other in-memory databases and want to expand their knowledge.

The book covers Ignite version 2.6.0 and above. For every topic, a complete application is delivered, which helps the audience to a quick start with the topic. Each chapter focuses on the complete implementation of a real-world scenario, the commonly occurring challenges in each scenario have also discussed, along with tips and tricks and best practices on how to overcome them.

  • Leanpub
  • hotmart-transparent
  • Lulu
  • Amazon

What you will learn:

  1. Apache Ignite architecture in depth such as data distributing technics (DHT), Rendezvous hashing, durable memory architecture, various cluster topologies, Ignite native persistence, Baseline topology and much more.

  2. Apache Ignite proven use cases as a memory-centric distributed database, caching and computing platforms.

  3. Getting started with Apache Ignite by using different tools and technics. 

  4. Caching strategies by examples and how to use Apache Ignite for improving application performance including Hibernate L2 cache, MyBatis, Memoization and Web session clustering.

  5. Using Spring Data and JPA (Hibernate OGM) with Apache Ignite for developing high-performance web applications.

  6. Ignite query (SQL, API, Text and Scan queries) capabilities in depth. 

  7. Using Spark RDD and Data frames for improving performance on processing fast data.

  8. Developing and executing distributed computations in a parallel fashion to gain high performance, low latency, and linear scalability. 

  9. Developing distributed Microservices in fault-tolerant fashion.

  10. Processing events & streaming data for IoT projects, integrate Apache Ignite with other frameworks like Kafka, Storm, Camel, etc.

  11. Real time data Replication between Ignite clusters through Kafka.

  12. Configuring, management and monitoring Ignite cluster with built-in and 3rd party tools.

Table of Contents

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

What people say about the book

"This is one of the very few good books on Apache Ignite. It covers the whole spectrum of Ignite. From use-cases and architecture till maintenance and code examples to get your hands dirty. If you want one book to get it all, this is it!"

— Edward Kuenen, software developer

"This book has been very handy to me and the reading experience is fantastic. The balance of theory, and coding examples make reading the book very fun-filled and enlightening. You don't get bored! I definitely recommend this book to Ignite users; doesn't matter if you are a developer, support team member, architect or a solution designer. Everyone has got something to learn from this book."

— Sadruddin Md, technology enthusiast

"When it comes to Ignite, you have very less number of books to choose from, and by far this is the best book you will get. The Author has explained all the topics in a straightforward and understanding way with a working example for each. I have started with zero knowledge of Ignite, and now I'm able to build many working projects using Ignite. Big thanks to the author for writing this excellent book."

— Manoj GT, software developer

Digital edition

From $21.99

Digital edition

From $19.99

Print edition

From $49.49

Print edition

From $54.99