Apache Ignite Quick Start Guide

Book description

Build efficient, high-performance & scalable systems to process large volumes of data with Apache Ignite

Key Features

  • Understand Apache Ignite's in-memory technology
  • Create High-Performance app components with Ignite
  • Build a real-time data streaming and complex event processing system

Book Description

Apache Ignite is a distributed in-memory platform designed to scale and process large volume of data. It can be integrated with microservices as well as monolithic systems, and can be used as a scalable, highly available and performant deployment platform for microservices. This book will teach you to use Apache Ignite for building a high-performance, scalable, highly available system architecture with data integrity.

The book takes you through the basics of Apache Ignite and in-memory technologies. You will learn about installation and clustering Ignite nodes, caching topologies, and various caching strategies, such as cache aside, read and write through, and write behind. Next, you will delve into detailed aspects of Ignite's data grid: web session clustering and querying data.

You will learn how to process large volumes of data using compute grid and Ignite's map-reduce and executor service. You will learn about the memory architecture of Apache Ignite and monitoring memory and caches. You will use Ignite for complex event processing, event streaming, and the time-series predictions of opportunities and threats. Additionally, you will go through off-heap and on-heap caching, swapping, and native and Spring framework integration with Apache Ignite.

By the end of this book, you will be confident with all the features of Apache Ignite 2.x that can be used to build a high-performance system architecture.

What you will learn

  • Use Apache Ignite's data grid and implement web session clustering
  • Gain high performance and linear scalability with in-memory distributed data processing
  • Create a microservice on top of Apache Ignite that can scale and perform
  • Perform ACID-compliant CRUD operations on an Ignite cache
  • Retrieve data from Apache Ignite's data grid using SQL, Scan and Lucene Text query
  • Explore complex event processing concepts and event streaming
  • Integrate your Ignite app with the Spring framework

Who this book is for

The book is for Big Data professionals who want to learn the essentials of Apache Ignite. Prior experience in Java is necessary.

Table of contents

  1. Title Page
  2. Copyright and Credits
    1. Apache Ignite Quick Start Guide
  3. About Packt
    1. Why subscribe?
    2. Packt.com
  4. Contributors
    1. About the author
    2. About the reviewer
    3. Packt is searching for authors like you
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
  6. Getting Familiar with Apache Ignite
    1. Why Apache Ignite?
    2. Exploring the features
      1. In-Memory Data Grid (IMDG)
      2. In-Memory SQL Grid (IMSG)
      3. Compute Grid
      4. Service Grid
      5. Streaming and Complex Event Processing
      6. Ignite File System (IGFS)
      7. Clustering
      8. Messaging
      9. Distributed data structures
    3. Refactoring the architecture
      1. Achieving High Performance
      2. Addressing High Availability and Resiliency
      3. Sharing Data
      4. Moving Computation To Data
    4. Installing Apache Ignite
    5. Running HelloWorld
    6. Classifying Apache Ignite
      1. IMDB versus IMDG
      2. YugaByte DB
      3. Geode, Hazelcast , Redis, and EhCache
    7. Summary
    8. References
  7. Understanding the Topologies and Caching Strategies
    1. CAP theorem and Apache Ignite
    2. Clustering architecture
      1. Node discovery
        1. TCP/IP discovery
        2. ZooKeeper discovery
      2. Node deployment
      3. Cluster grouping
        1. All nodes
        2. Remote nodes
        3. Cache nodes
        4. Grouping by attributes
        5. Grouping by node age
        6. Local nodes
        7. Client and server nodes
        8. Custom nodes
    3. Caching topology
      1. Local
      2. Partitioned
      3. Replicated
    4. Caching strategy
      1. Cache aside
      2. Read-through and write-through
      3. Write-behind
    5. Summary
  8. Working with Data Grids
    1. Exploring the Data Grid
      1. Viewing cache elements
    2. Configuring the DataGrid
      1. Configuring Ignite caching
        1. Configuring L2 Caching
    3. Web session clustering
      1. How did it work?
    4. Summary
  9. Exploring the Compute Grid and Query API
    1. Query API
      1. ScanQuery
      2. TextQuery
      3. SqlQuery
        1. Collocated
          1. Annotation-based query
          2. Field based query
        2. Non-collocated
      4. SQL functions
    2. Compute Grid
      1. Distributed Closure
        1. Broadcasting asynchronously
        2. Exploring the run and call APIs
        3. Exploring the apply API
      2. Ignite MapReduce/ForkJoin
        1. Task Adapter
        2. Task Split
        3. Task Sessions
      3. Ignite Executor Service
      4. Ignite Job Scheduler
      5. Ignite AOP
    3. Summary
  10. Building MicroServices with Service Grid
    1. Understanding the service grid
    2. Deploying microservices on Ignite
      1. Building microservices
    3. Processing complex events
      1. Streaming events
    4. Summary
  11. Sharpening Ignite Skills
    1. Writing data to a persistent store
      1. Enabling native persistence
      2. Persisting data to MySQL
      3. Persisting data to Cassandra
        1. Working with the POJO strategy
        2. Working with the BLOB strategy
    2. Processing transactions
      1. Exploring transactional mode
      2. Transaction concurrency and isolation
    3. Exploring distributed data structures
      1. CountDownLatch
      2. Semaphore
      3. ID generator
      4. Queue and Set
      5. Atomic types
        1. IgniteAtomicLong
        2. IgniteAtomicReference
        3. IgniteAtomicStamped
    4. Summary
  12. Deploying To Production
    1. Understanding the memory model
      1. Retrieving a value
      2. Storing an entry
      3. Preventing OOM
        1. Off-heap eviction
          1. RANDOM_LRU
          2. RANDOM_2_LRU
        2. On-heap eviction
          1. LRU
          2. FIFO
          3. SORTED
        3. Swap space
      4. Expiring entries
    2. Monitoring memory and caches
      1. Memory region monitoring
      2. Cache monitoring
      3. JMX console monitoring
    3. Securing data
    4. Tuning performance
    5. Exploring the deployment options
    6. Summary
    7. References
  13. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think

Product information

  • Title: Apache Ignite Quick Start Guide
  • Author(s): Sujoy Acharya
  • Release date: November 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781789347531