Pivotal GemFire Release Notes
Pivotal GemFire 9.3 is based on Apache Geode version 1.4. Pivotal GemFire 9.3 and Apache Geode share a common set of documentation. Therefore, references to both GemFire and Apache Geode appear throughout this documentation; consider them equivalents.
Pivotal GemFire 9.3 includes the following improvements:
New and enhanced
gfshcommands to allow users to perform many operations from the command line that were previously available only via APIs, including:
- New eviction options for the
create regioncommand, including
--if-existsoption for the
destroy index, and
destroy regioncommands, so they can be run multiple times without throwing errors
- Enhanced output for the
describe regioncommand includes information about async event queues and gateway senders
list memberoutput includes coordinator information
Lucene indexing for nested objects - see Apache Lucene Integration for details.
An optional asynchronous eviction algorithm that may be more efficient than the LRU scheme for many system configurations. (See the javadocs for
org.apache.geode.internal.cache.evictionfor details.) The asynchronous algorithm can be invoked by setting the
gemfire.EvictionScanAsyncproperty, and can be further tuned with the properties
gemfire.EvictionScanThresholdPercent. For example:
gfsh>start server --name=server1 --J=-Dgemfire.EvictionScanAsync=true \ --J=-Dgemfire.EvictionScanMaxThreads=1 --J=-Dgemfire.EvictionScanThresholdPercent=10
- Hash indexes and hash index APIs are deprecated; they are still operative, but will be removed in a future release. Improvements to one of the functional indexes (compact range index) reduce the memory consumption of that index and make it similar in size to a hash index, but the keys still are stored in memory. This compact range index is a good replacement for the hash index in most cases. Its read/write performance is also faster than that of the hash index.
You can download Pivotal GemFire 9.3 from the Pivotal GemFire product download page.
For details on how to install Pivotal GemFire 9.3, see Installing Pivotal GemFire.
Note that the file name extension for the compressed TAR file is
.tar.gz (rather than
To upgrade from an earlier version of GemFire to the current version, see Upgrading Pivotal GemFire.
When servers are upgraded to this GemFire version from a version prior to version 9.1.1, their authentication of client messages is disabled in order to facilitate rolling upgrades. If your clients are set up to send authenticated messages, the servers will honor those messages, but will not enforce authentication until you reinstate authentication on each of the upgraded servers.
To reinstate secure client/server messaging, restart each server with
geode.disallow-internal-messages-without-credentials system property set to
gfsh>start server --name=server_name --dir=server_config_dir \ --J=-Dgeode.disallow-internal-messages-without-credentials=true
The GemFire 9.3 release is based on the Apache Geode 1.4 release. Here is a list of all issues resolved for Geode 1.4.
The following issues have been resolved in GemFire 9.3. Ticket numbers of the form GEODE‑NNNN can be inspected at the Apache Software Foundation site for Geode issues.
GEODE-2676, GEM-1791: The gfsh
show metrics command no longer throws a
NullPointerException when invoked with a partitioned region.
GEODE-3843: The gfsh
shutdown error message no longer suggests non-existent options.
GEODE-3973: Improved reliability by having the cluster configuration start synchronously when starting a locator.
GEODE-4078: Improved error reporting by displaying the full path when a locator view log cannot be opened.
GEODE-3857, GEM-1750: A Pulse login no longer fails after the second login.
GEODE-3941, GEODE-3951, GEM-1783: Pulse now cooperates with a
SecurityManager implementation, no longer throwing a
NullPointerException and a logout exception.
GEODE-4293: Pulse works correctly when the
jmx-manager-password-file property is specified.
Other Management & Monitoring Issues
GEODE-3962: A starting server now uses more secure methods to obtain its cluster configuration from the locator.
GEODE-4029: Instituted measures to ensure consistency among deployed jars when multiple locators are in use.
GEODE-4097: The user can now specify the location of the
geode-core JAR file in the classpath, overriding the hard-coded default location.
GEODE-4193, GEM-1863: Fixed password file security in JMX.
GEODE-4298, GEM-1862: Restored public API accessibility to the
ServerLauncher.waitOnServer() method, which was inadvertently restricted in an earlier release.
GEODE-3038: A server process no longer shuts down quietly when the path to the
cache.xml file is incorrect. Now, an exception is thrown and logged when the
cache.xml file is not found during cache creation.
GEODE-3521: Allows region set operations to bootstrap a transaction.
GEODE-3764: Instituted measures to prevent early idle expiration.
GEODE-3869, GEM-1838: Instituted measures to prevent early eviction.
GEODE-3976: Improved exception messages regarding attempts to allocate disk space beyond established thresholds.
CacheWriter methods that call
EntryEvent.getOldValue now retrieve values that have been overflowed to disk.
GEODE-4033: An exception is now returned to the caller when a transaction Id is not found on the targeted server. This prevents multiple instantiations of the transaction state when the transaction is attempted on an alternate server.
GEODE-4099: Informational messages returned by size inquiries on partitioned regions have been changed from “warning” to “debug” level.
GEODE-3764, GEM-1766: Fixed a bug that allowed idle expiration to happen even if the potentially expiring entry had been accessed on a replicate.
Replicate accesses are now checked before expiration is allowed to proceed. Those few applications that need to retain
the less correct, legacy behavior can do so by setting the system variable
GEODE-3026: Removed the
AsyncEventQueue for the Lucene index, if the region is not created.
GEODE-3953: Corrected equality comparisons of field name arrays.
GEODE-3954: Improved exception messages to meaningfully report field analyzers and field names in the presence of mismatched sizes.
Other Queues & Queries Issues
GEODE-3938: Allow query parameters within the to_date preset query function.
GEODE-3708: Added a separate iterator for
MemoryIndexStore, which prevents duplicate results for join queries.
GEODE-3815: Entries are no longer incorrectly removed from the index map during parallel gateway queue conflation.
GEODE-3987, GEM-1811: Enforce gateway receiver uniqueness per member.
GEODE-4072: Fixed a race condition in the
GEODE-3588, GEM-1869: Two restarts of a locator no longer results in a “split brain” condition.
GEODE-3780: A suspected member that fails an initial health check on a system restart is now reconsidered for membership when the system is functional.
GEODE-3923: The user can specify filters in the
gemfire.properties file to specify objects that are eligible or ineligible for Java serialization.
GEODE-3964: Added an extra level of logging if a view does not come back during severe alert processing.
GEODE-4087: GemFire no longer sets the default SSLContext for the JVM.
GEODE-4165: Improved logging to display the full EventId when a mismatch is detected with that of the client.
The following known issues affect GemFire 9.3:
GEM-1197: If the initialization of a Spring container is not complete upon the start or restart of an embedded locator, deadlock can result. Avoid this issue by completing Spring container initialization before starting locators or servers; start GemFire processes in the Spring container’s startup event.
General support includes security vulnerability resolutions and critical bug fixes in all supported minor versions, while other maintenance is applied only to the latest supported minor release.
Obtaining and Installing Security Updates
New versions of Pivotal GemFire often include important security fixes, so Pivotal recommends you keep up to date with the latest releases.
For details about any security fixes in a particular release, see the Pivotal security page.