Book Image

IBM WebSphere eXtreme Scale 6

By : Anthony Chaves
Book Image

IBM WebSphere eXtreme Scale 6

By: Anthony Chaves

Overview of this book

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 (15 chapters)
IBM WebSphere eXtreme Scale 6
Credits
About the Author
About the Reviewers
Preface

Time-to-live keeps us out of trouble


Duplicating objects across partitions is great for locality of reference. Duplicating enough objects leads to OutOfMemoryExceptions. We need to keep enough data in the memory to be useful, but not so much that our grid crashes after loading too many objects. The time-to-live property on BackingMap helps us avoid this problem.

The time-to-live property tells a BackingMap how long to keep an object in the memory. After that time has elapsed, the object is eligible for eviction from the BackingMap. Eviction takes place with an Evictor plug-in. Most commonly, we use the (default) time-to-live evictor, LRUEvictor, and LFUEvictor.

The LRU and LFU evictors are based on the usual suspects of least-recently used, and least-frequently used objects. We can avoid trouble with our duplicated Account objects by setting an LRUEvictor as its BackingMap evictor. We give it a time-to-live of 12 hours:

<backingMap name="Account"
ttlEvictorType="CREATION_TIME"
timeToLive...