Overview
Infinispan is a distributed cache and key-value NoSQL data store software developed by Red Hat.
Course Outline
Module 1. Introducing the Infinispan data grid
- Infinispan and JSR 107 – Java Temporary Caching API
- Getting started with Infinispan
- Installing Infinispan
- Looking inside the box
- Using Maven
- Creating your first project
- Setting up the environment
Module 2: Infinispan architecture
- Anatomy of an Infinispan clustered cache
- The embedded (P2P) mode
- The client/server mode
- The cache container
- Default cache
- Naming your caches
Module 3: Understanding Infinispan Topologies
- Clustering modes
- The local mode
- The invalidation mode
- The replicated mode
- Understanding synchronous and asynchronous replication
- The distribution mode
- Server Hinting
- L1 caching
Module 4. Configuring an Infinispan cache
- Declarative configuration on Infinispan
- Understanding the JGroups element
- Configuring the threads subsystem
- Configuring the cache-container element
- Programmatic configuration
- Infinispan APIs
- Learning the cache API
- Understanding cache evictions
- Configuring cache expiration
- Eviction v/s Expiration
Module 5. Persisting data in Infinispan
- Configuring a cache loader
- Filesystem-based cache loaders
- JDBC-based cache loaders
- JPA cache store
- Selecting a JDBC cache loader
- Using passivation in your application
Module 6. The role of Marshalling
- Support for Non-Serializable Objects
- Advanced configuration
- Plugging Infinispan with User defined Externalizers
Module 7. Querying and indexes
- The infinispan-query module
- Configuration
- Cache modes and managing indexes
- Sharing the index
- Clustering the index in Infinispan
- Rebuilding the index
- Obtaining query statistics
- Infinispan’s Query DSL
- Filtering operators
- Boolean conditions
- Nested conditions
- Projections
- Sorting
- Pagination
- Grouping and Aggregation
Module 8. Using HotRod Client
- Introduction
- Installation and configuration
- Using the API
Module 9. Use of Streams API
- Common stream operations
- Local/Invalidation
- Distribution/Replication
- Rehash aware
- Serialization
- Parallel Computation
- Task Timeout
- Injection
- Distributed Stream Execution
- Key based rehash aware operators
- Intermediate operation exceptions
Module 10: Understanding Transactions and Concurrency
- Transaction fundamentals
- Java Transaction API
- Transactional modes
- Non-transactional data access
- Transactional models
- Optimistic transaction
- Pessimistic transaction
- Choosing the better transaction model
- Batch mode
- Transaction recovery
- Integrating with Transaction Manager
- Locking and concurrency control
- Multiversion concurrency control
- Configuring isolation levels in Infinispan
- Implicit and explicit locking
- Lock timeouts
- Deadlock detection
- Data versioning
Module 11. Introducing Hibernate OGM
- Hibernate OGM features
- Hibernate OGM architecture
- Understanding how the mappings work
- Installing and using Hibernate OGM
- Creating a Hibernate OGM project using Maven
- Configuring the persistence unit
- Configuring Infinispan caches for Hibernate OGM
- Creating the domain model
Module 12. Understanding Cross site replication
- Sample deployment
- Data replication
- Taking a site offline
- State transfer between sites
Module 13. Looking to version 9
- The news with version 9
- Understanding the major changes
- Upgrading path from 8.x to 9