Pivotal GemFire® v8.0

Pivotal GemFire 8.0.0 Release Notes

Pivotal GemFire 8.0.0 Release Notes

Release Date 12 August 2014
Last Document Update 3 March 2016
Additional Documentation All GemFire 8.0.0 Documentation
Note: The Pivotal GemFire 8.0 release will be the last GemFire release to support Java SE 6.

What's in the Release Notes

The release notes cover the following topics:

What's New in Pivotal GemFire 8.0.0

Pivotal GemFire 8.0.0 includes the following updates and new features:

Cluster Configuration Service

You can now save your cluster's configuration and share it automatically across your cluster. Using a common cluster configuration reduces the amount of time you spend configuring individual members and enforces consistent configurations when bringing up new members in your cluster. You no longer need to reconfigure each new member that you add to the cluster. You no longer need to worry about validating your cache.xml file. It also becomes easier to propagate configuration changes across your cluster and deploy your configuration changes to different environments.

Pivotal highly recommends that you use the gfsh command line and the cluster configuration service as the primary mechanism to manage your distributed system configuration.

When you use gfsh commands to create Pivotal GemFire regions, disk-stores, and other objects, the cluster configuration service saves the configurations on each locator in the cluster (also called a GemFire distributed system). If you specify a group when issuing these commands, a separate configuration is saved containing only configurations that apply to the group.

When you use gfsh to start new Pivotal GemFire servers, the locator serves the persisted configurations to the new server. If you specify a group when starting the server, the server receives the group-level configuration in addition to the cluster-level configuration.

You can use the cluster configuration service to:

  • Save the configuration for an entire Pivotal GemFire cluster.
  • Restart members using a previously-saved configuration.
  • Export a configuration from a development environment and migrate that configuration to create a testing or production system.
  • Start additional servers without having to configure each server separately.
  • Configure some servers to host certain regions and other servers to host different regions, and configure all servers to host a set of common regions.

See Configuring a Pivotal GemFire Cluster for more details.

REST APIs for Application Development

Pivotal GemFire now includes a set of HTTP protocol-enabled REST API calls.

By using Pivotal GemFire REST APIs, you can immediately access GemFire's data management capabilities in languages other than the natively supported Java, C++, and C# languages. GemFire REST APIs support the creation and management of region data, and the creation and execution of queries (both ad-hoc and named) and the execution of pre-defined functions in your GemFire deployment.

For more details on using GemFire REST APIs, see Developing REST Applications for Pivotal GemFire.

Region Compression

One way to reduce memory consumption by GemFire is to enable compression in your regions. GemFire allows you to compress in-memory region values using pluggable compressors (compression codecs). GemFire includes the Snappy compressor as the built-in compression codec; however, you can implement and specify a different compressor for each compressed region.

For more information on using region compression, see Region Compression.

Management and Monitoring Improvements

Pivotal GemFire 8.0.0 includes several improvements to the management and monitoring system.

  • Remote Cluster Management. You can connect gfsh to a remote cluster and manage the cluster using gfsh commands. See Using gfsh to Manage a Remote Cluster Over HTTP for more information.
  • Pulse Enhancements. Pulse now incorporates Data Browser functionality and displays additional member information such as redundancy zones. The ealier, standalone DataBrowser utility is deprecated. See GemFire Pulse for more information.
  • Updated gfsh Commands. gfsh Commands have been updated to support new features such as compression, remote cluster management, and the cluster configuration service. In addition, a new configure pdx command has been added. See Using the Pivotal GemFire SHell (gfsh).
  • Improved gfsh Output Formatting for Query Results. The layout of gfsh output for queries has been improved. See Configuring the gfsh Environment for more details.
  • Log Collection Utility. To aid in the troubleshooting of Pivotal GemFire issues, you can use the provided log collection utility to gather and upload log files to the Pivotal support team. This tool is only supported on Linux machines. See Log Collection Utility.

Automatic Reconnect for Distributed System Members

A GemFire member may be forcibly disconnected from a GemFire distributed system if the member is unresponsive for a period of time, or if a network partition separates one or more members into a group that is too small to act as the distributed system.

After being disconnected from a distributed system a GemFire member automatically shuts down and then restarts into a "reconnecting" state, while periodically attempting to rejoin the distributed system. If the member succeeds in reconnecting, the member rebuilds its view of the distributed system from existing members and receives a new distributed system ID. When a locator is in the reconnecting state, it provides no discovery services for the distributed system.

See Handling Forced Cache Disconnection for more information on configuring this behavior.

Improved Member Startup and Data Recovery Performance

When starting distributed system members, GemFire can speed the recovery of persisted data for partitioned regions by distributing only the data necessary to bring each member up-to-date, rather than performing a full recovery.

Separate SSL Configuration Options

You can now configure SSL separately for peer-to-peer (cluster), client/server, WAN and JMX manager communications. See Configuring SSL for more information.

Disk Store Free Space Monitoring

You can now set warning and error thresholds to monitor the free space of your disk stores. Disk usage above disk-usage-warning-percentage generates a warning message. Disk usage above disk-usage-critical-percentage generates an error message and shuts down the member's cache.

See Configuring Disk Free Space Monitoring for more details.

Multiple Dispatcher Threads for Parallel WAN and Async Event Queues

You can now configure multiple dispatcher threads for a parallel WAN gateway or async event queue. By default the number of dispatcher threads is set to 5. If you detect that your system is using too much CPU, modify the number of threads to 1. See Configuring Dispatcher Threads and Order Policy for Event Distribution.

Additional Product Enhancements

In addition to the new features described above, the following product enhancements have been made:

  • Key Storage and Memory Overhead Optimizations. Keys are stored in object form except for certain classes where the storage of keys is optimized. Key storage is optimized by replacing the entry's object reference to the key with one or two primitive fields on the entry that store the key's data "inline". See Using Key Storage Optimization for more details.
  • Organized JARs into Dependency JAR files. GemFire dependency libraries have been grouped into *-dependencies.jar files to simplify CLASSPATH specification. See CLASSPATH Settings for GemFire Processes for a description of these files.
  • Updated HTTP Modules to Version 8.0. Added a new module to support tc Server 3.0.
  • Updated Spring Data GemFire to Version 1.4.0. Pivotal GemFire 8.0.0 supports and includes Spring Data GemFire 1.4.0. You can now start servers in GemFire by providing a Spring context XML file upon server startup. For example:
    gfsh>start server --name=server_name --spring-xml-location=path-to-spring-config-xml-file
    If you want to experience full support for Pivotal GemFire 8.0.0 features in Spring Data GemFire, download Spring Data GemFire 2.0.0 (when available), and specify the updated JAR in the --classpath option of the gfsh start server command. Specifying the new JAR in the server's CLASSPATH upon start up adds the new JAR to the beginning of the server's CLASSPATH.
    Note: Pivotal only supports JAR versions of dependencies that are shipped with Pivotal GemFire 8.0.0. When you add a new JAR file to the CLASSPATH of a GemFire server, you are modifying GemFire's dependencies and potentially its behavior. Since Spring Data GemFire 2.0.0 is not shipped with Pivotal GemFire, you are allowed to use 2.0.0 (and any other non-supported versions of SDG) for evaluation purposes only.

    See the Spring Data GemFire Project Page for downloads and documentation for all versions of Spring Data GemFire.

Installing Pivotal GemFire 8.0.0

You can download Pivotal GemFire 8.0.0 (and Pivotal GemFire Native Client 8.0.0) from the Pivotal GemFire product download page.

Pivotal GemFire 8.0.0 is available in a variety of distribution methods including:

  • ZIP or tar.gz
  • RPM for RHEL
  • DEB for Ubuntu
  • Homebrew for MacOSX
  • Maven repository

Pivotal GemFire 8.0.0 installation download includes GemFire tools such as Pulse, VSD, Developer REST APIs as well as Pivotal GemFire HTTP Modules.

For details on how to install Pivotal GemFire 8.0.0, see Installing Pivotal GemFire in the Pivotal GemFire User's Guide.

Upgrading to Pivotal GemFire 8.0.0

To upgrade from an earlier version of GemFire to the current version, see Upgrading Pivotal GemFire in the Pivotal GemFire User's Guide.

The following are some upgrade considerations specific to upgrading to Pivotal GemFire 8.0.0:

  • Pivotal GemFire now uses updated and separate configuration properties for SSL configuration. If you currently have SSL configured in your cluster, you may need to update your or configuration to re-enable SSL communication as part of your upgrade before starting up your GemFire 8.0.0 system.
    1. If you have ssl-* GemFire properties defined in your pre-8.0 deployment, rename each property to a matching cluster-ssl-* property as part of the upgrade. For example, rename ssl-enabled to cluster-ssl-enabled. The following table maps the new properties:
      Pre-8.0 Property 8.0 General (and Peer-to-Peer) SSL Property
      ssl-enabled cluster-ssl-enabled
      ssl-ciphers cluster-ssl-ciphers
      ssl-protocols cluster-ssl-protocols
      ssl-require-authentication cluster-require-authentication
      Note: Setting cluster-ssl-* properties enables SSL for all communications in your cluster. If you only need SSL for JMX Manager (jmx-manager-ssl-*), gateway (gateway-ssl-*) or client/server (server-ssl-*) communications, or for any combination of the above, you can set cluster-ssl-enabled=false and configure the specific subsystem SSL properties. Setting cluster-ssl-enabled to true and disabling SSL for all other subsystems will only configure SSL for GemFire's peer-to-peer connections.
    2. If you have jmx-manager-ssl set to true, rename jmx-manager-ssl to jmx-manager-ssl-enabled. Configure the remaining jmx-manager-ssl-* properties as needed.
    3. Subsequently, you can separately configure (and optionally disable) SSL connections for JMX Manager (jmx-manager-ssl-*), gateway (gateway-ssl-*) or client/server (server-ssl-*) communications. If you do not configure these properties specifically, the settings for cluster-ssl-* property configuration settings are inherited by these connection types.
    See Configuring SSL for more information on these properties.
  • By default, Pivotal GemFire now uses mulitple dispatchers for parallel queues. Multiple dispatchers may work on a single AsyncListener instance within a VM. Therefore, as part of the upgrade to 8.0.0, you must modify your application to synchronize on any common state in the AsyncListenener. (This constraint applies to serial queues using multiple dispatchers as well.)
  • Thoroughly test your systems with the new 8.0.0 version before moving into production. Downgrade from 8.0.0 to a previous version of GemFire is not supported.

Resolved Issues

For a list of bugs that have been resolved in Pivotal GemFire 8.0.0 and are registered as bugs in the Pivotal bug tracking system, see BugsFixedGemFire800.html.

The following issues have been resolved in the Pulse monitoring tool:

  • #1196. Pulse now enabled to connect to SSL-enabled managers and locators.
  • #1192. Any alerts other than system alerts of type Severe, Error or Warning are now displayed in the "All" tab of the Notification Panel.
  • #1208. NPEs in getRegionJson service has been fixed.
  • #1209. Logic updated for sorting cluster regions.
  • #1214. Default in Web Application Archive can be overridden by providing new file in the CLASSPATH directory.
  • #1234. JVM Pauses widget updated to display JVM pauses that have only occured within last 15 minutes.
  • #1247. Scroll bar now displayed in the Data Browser Data Regions area.
  • #1314: Removed printStackTrace statements and extraneous logging messages wherever required.

The following issues have been resolved in Pivotal GemFire HTTP Modules:

  • GemFire AppServer Module. Incorrectly propagating Delta value during serialization. This issue is fixed in 8.0.
  • GemFire tcServer Module. Active sessions were not being persisted correctly during container shutdown or webapp (context) reloading. This issue is fixed in 8.0.
  • GemFire tcServer Module. Bug #75. Provide for backwards compatibility with older (2.1.x) clients. This fix requires GemFire or later. This issue is fixed in 8.0.
  • GemFire tcServer Module . Added support for tcServer 3.0 (Tomcat 8). This mainly only affects the templates delivered with the product. A new zip called tcServer30 is now provided. If you are using tcServer 3.0, you must use this distribution.

Known Issues

For a list of known issues in Pivotal GemFire 8.0.0 that are registered as bugs in the Pivotal bug tracking system, see KnownIssuesGemFire800.html.

For a list of known issues in GemFire Pulse that are registered as bugs in the Pivotal bug tracking system, see KnownIssuesPulseGemFire800.html.