Scaling Data Services with Pivotal GemFire

Book description

In-memory data grids (IMDG) such as Pivotal GemFire, which is powered by Apache Geode, are key to making today’s modern high-speed, data-intensive applications work. By keeping data in the RAM of a horizontally scalable cluster of servers, IMDG solutions enable apps to achieve consistently low latency for data access at any scale.

Many in the application development community, however, aren’t aware of IMDG’s benefits, use cases, or underlying technology. This report brings you up to speed by providing GemFire basics, including use cases and easily understood examples. You’ll determine whether GemFire can benefit your application, and learn how to install a simple test environment and build a small proof of concept.

  • Explore GemFire use cases for Java applications—including microservices, high-speed data ingest, and transaction and event processing
  • Get an architectural overview of GemFire, and learn installation requirements for both hardware/VM and cloud
  • Dive into GemFire’s capabilities with continuous queries, server-side functions, and Apache Lucene integration
  • Learn how GemFire works with the persistence model, off-heap memory, and WAN replication

Table of contents

  1. Foreword
  2. Preface
    1. Why Are We Writing This Book?
    2. Who Are “We”?
    3. Who Is the Audience?
  3. Acknowledgments
  4. 1. Introduction to Pivotal GemFire In-Memory Data Grid and Apache Geode
    1. Memory Is the New Disk
    2. What Is Pivotal GemFire?
    3. What Is Apache Geode?
    4. What Problems Are Solved by an IMDG?
    5. Real GemFire Use Cases
      1. Transaction Processing
      2. High-Speed Data Ingest and the Internet of Things
      3. Offloading from Existing Systems/Caching
      4. Event Processing
      5. Microservices Enabler
    6. IMDG Architectural Issues and How GemFire Addresses Them
      1. Horizontal Scale
      2. Coordination
      3. Organizing Data
      4. High Availability
      5. Persistence
  5. 2. Cluster Design and Distributed Concepts
    1. The Distributed System
    2. Cache
    3. Regions
    4. Locator
    5. CacheServer
    6. Dealing with Failures: The CAP Theorem
    7. Availability Zones/Redundancy Zones
    8. Cluster Sizing
    9. Virtual Machines and Cloud Instance Types
    10. Two More Considerations about JVM Size
  6. 3. Quickstart Example
    1. Operating System Prerequisites
    2. Installing GemFire
    3. Starting the Cluster
    4. GemFire Shell
    5. Something Fun: Time to One Million Puts
  7. 4. Spring Data GemFire
    1. What Is Spring Data?
    2. Getting Started
    3. Spring Data GemFire Features
  8. 5. Designing Data Objects in GemFire
    1. The Importance of Keys
      1. Bad Keys
    2. Partitioned Regions
    3. Colocation
    4. Replicated Regions
    5. Designing Optimal Data Types
    6. Portable Data eXchange Format
    7. Handling Dates in a Language-Neutral Fashion
    8. Start Slow: Optimize When and Where Necessary
  9. 6. Multisite Topologies Using the WAN Gateway
    1. Example Use Cases for Multisite
    2. Design Patterns for Dealing with Eventual Consistency
      1. Inventory Allocation Pattern
      2. Order-and-Fill Pattern
      3. Apology-Based Computing
      4. Gateway Components: Sender/Receiver
      5. Queue Persistence
  10. 7. Querying, Events, and Searching
    1. Object Query Language
    2. OQL Indexing
    3. Continuous Queries
    4. Listeners, Loaders, and Writers
    5. Lucene Search
  11. 8. Authentication and Role-Based Access Control
    1. Authentication and Authorization
      1. Background
      2. Implementation
      3. Fine-Grained Authorization
    2. SSL/TLS
  12. 9. Pivotal GemFire Extensions
    1. GemFire-Greenplum Connector
    2. Supporting a Fraud Detection Process
    3. Pivotal Cloud Cache
      1. PCC Service Instances On-Demand
      2. On-Demand Service Broker
      3. Cloud Agnostic
      4. High Availability
      5. Integration with Logging and Monitoring Services
  13. 10. More Than Just a Cache
    1. Session State Cache
    2. Compute Grid
    3. GemFire as System-of-Record
      1. High Availability
      2. Disk Durability
      3. Business Continuity
      4. Snapshots
      5. Backup, Incremental Backup, and Restore

Product information

  • Title: Scaling Data Services with Pivotal GemFire
  • Author(s): Mike Stolz
  • Release date: January 2018
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781492027577