As promised in my earlier post, I am posting the review of the book  IBM WebSphere eXtreme Scale 6 by Anthony Chaves.

IBM Websphere eXtreme Scale is an in-memory data grid which was formally known as ObjectGrid.

Chapter 1 talks about the basics of data grid. Why do we need data grids? Caching requirements in Single threaded vs multi threaded applications, failure of singleton pattern and how data grids address the issue. Good start for novice folks. Once the basics are over, getting and deploying the WebSphere eXtreme Scale is as easy as dropping a jar file in the classpath. The examples start with the basic of how to an equivalent of ‘Hello World’. The example used is very lucid and easy to understand. The example covers how to create a grid and add and retrieve data.

Chapter 2 talks about the different kinds of maps available – ObjectMap and BackupMap, how the application makes use of these and how are they configured. How does the data persistence work with Backup map and the different locking strategies available? The author has explained the locking and deadlocks very well. This topic is must read as these learning’s will be applicable when debugging and tuning the application data grid.

Chapter 3 talks about how to manage the classes with relationships between them. The Entity API allows the application developer to define the relationships so that ObjectGrid can understand the same. The author covers the Query API that provides an SQL-like view into an ObjectGrid

Chapter 4 talks about how to integrate the ObjectGrid with the database. The author demonstrates the usage of JPA API to showcase how the BackingMap is able to persist the data using the Loader. This chapter is a must read for all who want to introduce data grids in their existing applications.

Chapter 5 and 6 onwards the books starts turning advanced, with details on client/server object grid and how data grid might exist outside of your application JVMs and span across multiple computers or even data centers, Shard types , data partitioning and replication. The author details on the basic configuration required to start server instances, how to connect to a distributed object grid, managing the server/container load and tips on capacity planning. Must read for administrators, on how to tune data grids instances for effective performance and scalability.

Chapter 7 takes the reader into more advanced usage of DataGrid API on how to co-locate data and logic.  The chapters details on how to write agents that can send logic to the grid/shard.

Chapter 8 talks about the DataGrid patterns that can be deployed to build applications. The patterns are generic and are applicable for any in memory data grid (IMDG) application.

Chapter 9 talks about the WebSphere eXtreme Scale integration with Spring. How the ObjectGrid instance are injected into spring and how to write interfaces using Spring managed declarative transactions.

Chapter 10 takes the reader into the application, various problems encountered by the application developers and how to use the DataGrid to overcome the problems. We see how not only we can cache ORM objects but also non ORM objects like html fragments, xmls’ etc

Overall, the book is a must have on shelves of all, who are writing distributed applications and intends to make use of in memory data grid.