You are previewing IBM WebSphere eXtreme Scale 6.
O'Reilly logo
IBM WebSphere eXtreme Scale 6

Book Description

Build scalable, high-performance software with IBM's data grid

  • Get hands-on experience with eXtreme Scale APIs, and understand the different approaches to using data grids

  • Introduction to new design patterns for both eXtreme Scale and data grids in general

  • Tutorial-style guide through the major data grid features and libraries

  • Start working with a data grid through code samples and clear walkthroughs

In Detail

A data grid is a means of combining computing resources. Data grids provide a way to distribute object storage and add capacity on demand in the form of CPU, memory, and network resources from additional servers. All three resource types play an important role in how fast data can be processed, and how much data can be processed at once. WebSphere eXtreme Scale provides a solution to scalability issues through caching and grid technology. Working with a data grid requires new approaches to writing highly scalable software; this book covers both the practical eXtreme Scale libraries and design patterns that will help you build scalable software.

Starting with a blank slate, this book assumes you don't have experience with IBM WebSphere eXtreme Scale. It is a tutorial-style guide detailing the installation of WebSphere eXtreme Scale right through to using the developer libraries. It covers installation and configuration, and discusses the reasons why a data grid is a viable middleware layer. It also covers many different ways of interacting with objects in eXtreme Scale. It will also show you how to use eXtreme Scale in new projects, and integrate it with relational databases and existing applications.

This book covers the ObjectMap, Entity, and Query APIs for interacting with objects in the grid. It shows client/server configurations and interactions, as well as the powerful DataGrid API. DataGrid allows us to send code into the grid, which can be run where the data lives. Equally important are the design patterns that go alongside using a data grid. This book covers the major concepts you need to know that prevent your client application from becoming a performance bottleneck. By the end of the book, you'll be able to write software using the eXtreme Scale APIs, and take advantage of a linearly scalable middleware layer.

Table of Contents

  1. IBM WebSphere eXtreme Scale 6
    1. IBM WebSphere eXtreme Scale 6
    2. Credits
    3. About the Author
    4. About the Reviewers
    5. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Errata
        2. Piracy
        3. Questions
    6. 1. What is a Data Grid
      1. Data grid basics
      2. Getting IBM WebSphere eXtreme Scale
      3. Setting up your environment
      4. Hello, world!
      5. Summary
    7. 2. The ObjectMap API
      1. Different kinds of maps
      2. Get and put
      3. Updating objects in the grid
        1. Lock strategies
        2. Lock types
      4. Hash map refresher (or crash course)
      5. Optimistic collisions
      6. Deadlocks
      7. Removing objects
      8. FIFO queues
      9. Unsupported methods
      10. Wrapping up
      11. Summary
    8. 3. Entities and Queries
      1. Entities
        1. Defining Entities
        2. Persisting Entities
        3. Composition versus Inheritance
        4. The Find methods
          1. Entity life-cycle states
        5. Merge, remove, and the detached state
      2. Entity relationships
        1. @OneToMany, @ManyToOne
        2. schemaRoot
      3. The Query API
        1. Joins and aggregate functions
        2. IDs and Indexes
      4. Summary
    9. 4. Database Integration
      1. You're going where?
      2. Where does an IMDG fit?
      3. JPALoader and JPAEntityLoader
        1. The Loader's job
        2. Performance and referential integrity
      4. Removal versus eviction
      5. Write-through and write-behind
      6. BackingMap and Loader
        1. Picking battles
        2. JPALoader
      7. Summary
    10. 5. Handling Increased Load
      1. The building blocks
        1. Shards and partitions
        2. Client/Server ObjectGrid
      2. A basic deployment
        1. Starting a container
      3. Connecting to a distributed grid
      4. Adding more containers
      5. Partition placement
      6. Capacity planning
      7. Hitting the wall
      8. Summary
    11. 6. Keeping Data Available
      1. Containers, shards, partitions, and replicas
        1. The foundation
        2. Shards
        3. Map sets
        4. Partitions
        5. Replication
      2. Shard placement
        1. Shard start-up
        2. Lost shards and failover
      3. Physical location
        1. Controlled data separation
      4. Preferred zones
      5. Summary
    12. 7. The DataGrid API
      1. What does DataGrid do for me?
      2. Borrowing from functional programming
        1. GridAgent and Entity
        2. GridAgent with an unknown key set
      3. Aggregate results
        1. Using ephemeral objects in agents
        2. Updates with agents
        3. Scheduling agents
      4. Summary
    13. 8. Data Grid Patterns
      1. XTP: Extreme Transaction Processing
        1. The data model
        2. Schema root
      2. Reference data and object duplication
        1. How do we duplicate objects?
      3. Time-to-live keeps us out of trouble
        1. Early eviction
      4. Rely on partitions, not the entire grid
        1. One transaction, one node
        2. Object schema denormalization
      5. Summary
    14. 9. Spring Integration
      1. Injecting ObjectGrid instances
      2. Spring-managed eXtreme Scale configuration
      3. Transaction management
        1. Basic configuration
        2. ObjectGrid client configuration
        3. Remembering our patterns
      4. Summary
    15. 10. Putting It All Together
      1. The bookmarks app
        1. The data model
        2. The service layer
        3. Storing data how it is used
        4. Grid/ORM hybrid
        5. Preloading data
        6. Improving responsiveness
      2. Caching more than ORM
      3. Summary