Chapter 2. New Features and Enhancements

2.1. Data Container Enhancements

JBoss Data Grid 7.2 includes many changes to the data container, including a new eviction strategy called TinyLFU, as well as a new storage type called OffHeap. The data container is configured using the new <memory> element, which integrates the old <eviction> and <storeAsBinary> elements, which are thus deprecated. For more information on the current data container see Set Up JVM Memory Management in the Administration and Configuration Guide.

2.2. Partition Handling Enhancements

JBoss Data Grid 7.2 includes many updates to partion handling, including the ability to set different partition handling strategies, a new conflict manager, and several merge policies which can be used to customize how conflicts are resolved. Previously, in JBoss Data Grid, partition handling could only be turned on and off. With this update, partition handling behavior can be finely tuned. For more information on these updates see Network Partition Recovery in the Administration and Configuration Guide.

2.3. Hot Rod C# Client SASL Authentication

JBoss Data Grid 7.2 now supports SASL authentication between the C# Hot Rod client and the server. Previously, JDG only supported SASL authentication in the native Java Hot Rod Client. The C# client supports the following security mechanisms: PLAIN, DIGEST-MD5, EXTERNAL. See Securing Interfaces in the Developer Guide for more information.

2.4. Hot Rod C++ Client SASL Authentication

JBoss Data Grid 7.2 now supports SASL authentication between the C++ Hot Rod client and the server. Previously, JDG only supported SASL authentication in the native Java Hot Rod Client. The C++ client supports the following security mechanisms: PLAIN, DIGEST-MD5, EXTERNAL, GSSAPI (GSSAPI is not supported on Windows). See Securing Interfaces in the Developer Guide for more information.

2.5. Protostream 4.2.0

JBoss Data Grid 7.2 now includes ProtoStream 4.2.0. ProtoStream is a serialization library based on Google’s Protobuf data format.

2.6. Hibernate Search 5.7.3.Final and Apache Lucene 5.5.5

JBoss Data Grid 7.2 now includes Hibernate 5.7.3.Final and Apache Lucene 5.5.5. Both are used by JDG’s Query Module to perform querying on the entire data set stored in the distributed grid. JDG can also serve as a directory provider for Hibernate Search.

2.7. EAP Integration

JBoss Data Grid 7.2 now allows caches to be configured in standalone.xml via a new subsystem. Using this method the cache lifecycle will not be bound to the application. The caches can also be injected via a @Resource annotation similar to how EAP’s internal Infinispan modules are injected, just in a supported way. For more information, see Integration with EAP in the Developer Guide.

2.8. Spark Connector Enhancements

JBoss Data Grid 7.2 includes a new version of the Apache Spark connector which supports Spark 1.6.x and 2.x, which in turn support Scala 2.10.x, and 2.11.x. The connector provides improved configuration, simplified filtering by query String, improved Protocol Buffers support, and new support for the Dataset API, among other improvements. For more information, see Integration with Apache Spark in the Developer Guide.

2.9. Simultaneous Release of OpenShift Images

JBoss Data Grid 7.2 will release OpenShift images for version 7.2 at the same time as the release of the standard zip archives to be used on non-containerized platforms. The OpenShift images for JBoss Data Grid 7.2 can be downloaded from the Red Hat Container Catalog.

2.10. Clustered Counters

JBoss Data Grid 7.2 adds support for clustered counters. Clustered counters are distributed and shared across nodes in a Red Hat JBoss Data Grid cluster and allow you to record the count of objects. Clustered counters are available in Red Hat JBoss Data Grid Library Mode and Remote Client-Server Mode through the counter API. For more information, see Clustered Counters in the Developer Guide.

2.11. Clustered Locks

JBoss Data Grid 7.2 adds support for clustered locks. Clustered locks are data structures that are distributed and shared across nodes in a Red Hat JBoss Data Grid cluster. Clustered locks allow you to run code that is synchronized between the nodes in a cluster. Clustered locks are available in Red Hat JBoss Data Grid Library Mode only through the lock API. For more information, see Clustered Locks in the Developer Guide.

2.12. Multimap Cache

JBoss Data Grid 7.2 now includes the MultimapCache which is a cache that maps keys to values in which each key can contain multiple values. It currently only functions in Library Mode. For more information, see The Multimap Cache in the Developer Guide.

2.13. Cluster-Wide Dynamic Cache Creation

JBoss Data Grid 7.2 now supports dynamic cache creation. In Library Mode, or from a Hot Rod client, to dynamically create a cache use the createCache() method. For example, in Library Mode, the following method dynamically creates a cache on any new nodes that join a cluster: manager.administration().createCache("newCacheName", "newTemplate"). For more information, see Library Mode or Remote Client-Server Mode in the Developer Guide.

2.14. Broadcast Queries

The broadcast query feature allows each node to index its own data during writes, and at query time, it sends, or "broadcasts", the query to each node. The results from each node are then combined before being returned to the caller. This is ideal for DIST caches with large indices since the amount of data transferred is the query itself and the results. For more information see Broadcast Queries in the Developer Guide.

2.15. Configurable Data Formats

JBoss Data Grid allows you to interoperate with cached data through the REST API. As of 7.2, you can configure media types that define the data format. The default media type is application/octet-stream with some exceptions.

In this release, JBoss Data Grid also adds support for the application/json, which allows you to store, retrieve, and search for JSON documents. Additionally, JBoss Data Grid provides a technology preview for querying data via the REST interface using Ickle queries in JSON format.

For more information about supported media types, see Using the REST Interface in the Developer Guide.