Clients can optionally have a local, in-line cache when eXtreme Scale is used in a client/server topology. This cache is called a near cache: It is an independent eXtreme Scale that lives on each client, and is a cache for the remote, server-side core cache.
The near cache is enabled by default when locking is configured as optimistic or none and cannot be used when configured as pessimistic. To disable the near cache, set the numberOfBuckets attribute to 0 in the client override eXtreme Scale descriptor configuration. See Map Entry Locking for details on eXtreme Scale's lock strategies.
The near cache can also be configured to have a separate eviction policy and different plug-ins using a client override ObjectGrid descriptor configuration. See the topic: Configuring an ObjectGrid client for details.
eXtreme Scale can be used as a sparse cache or a complete cache. A sparse cache only keeps a subset of the data and can be populated lazily, on-demand. Sparse caches are normally accessed using keys (instead of indexes or queries) since the data is only partially available. When a key is not present (a cache miss), the next tier is invoked and the data is fetched and inserted into the respective cache tier. If using a query or index, only the currently loaded values are accessed and the requests are not forwarded to the other tiers.
A complete cache contains all of the required data and can be accessed using non-key attributes using indexes or queries. A complete cache is preloaded with data prior to applications' using it. Once loaded, it can be treated similarly to a database. Since all of the data is there, queries and indexes can be used to find and aggregate data.