Skip to content

Coherence CE v24.09

Latest
Compare
Choose a tag to compare
@pthilagar pthilagar released this 26 Sep 20:45
· 105 commits to main since this release

This is the Coherence CE v24.09 release.

Requirements:

  • Java 17 or higher
  • Some features will work only on Java 21 or higher

Major New Features in Coherence CE 24.09

  1. Vector DB and RAG support
  2. Distributed Queue support

Other New Features and Enhancements in Coherence CE 24.09

Coherence CE 24.09 is now compatible with both Helidon 3.x and Helidon 4.x.

  1. COH-30940 Added new ValueExtractor factory methods to the com.tangosol.util.Extractors class.
  2. COH-30800 Narrowed down the return type of factory methods in Extractors class to eliminate the need for casting of created extractor instances.
  3. COH-30794 Narrowed down the return type of factory methods in Processors class to eliminate the need for casting of created processor instances.
  4. COH-30793 Narrowed down the return type of factory methods in Aggregators class to eliminate the need for casting of created aggregator instances.
  5. COH-30743 Introduced a distributed paged queue that does not have the 2GB size limit of the simple Coherence queue.
  6. COH-30731 Added CollectionExtractor which enables projection of values within a collection using a nested ValueExtractor.
  7. COH-30715 Added a debug system property coherence.debug.operational.config that when set to true, causes Coherence to dump the stack of the thread that loads the Coherence operational config to standard out.
  8. COH-30690 Enhanced the com.tangosol.net.Coherence class main method to be consistent with DefaultCacheServer main method.
  9. COH-30627 Added support for high-performance (raw) serialization of primitive arrays.
  10. COH-30582 Added PofWriter.writeByteArray overload that takes array offset and length as arguments.
  11. COH-30581 Added support for serializing Protobuf messages using POF.
  12. COH-30576 Replaced usage of Jandex for portable type indexing and discovery with a built-in solution, in order to eliminate runtime dependency on Jandex and its index format.
  13. COH-30534 Added an element to the service list indicating the persistence mode in use.
  14. COH-30448 Improved a warning log to describe the potential communication problem due to packet delivery failures more clear and correct.
  15. COH-30435 Changed the default of system property coherence.metrics.legacy.names from true to false to remove the vendor: prefix from generated Prometheus metrics as the default.
  16. COH-30388 Fixed rolling upgrade for distributed lambdas by removing production mode defaulting to static lambdas.
  17. COH-30385 Narrowed down the return type of factory methods in Filters class to eliminate the need for casting of created filter instances.
  18. COH-30322 Marked generated __evolvableHolder$ field as @JsonbTransient, to avoid its serialization into JSON output when using JSONB to serialize portable types.
  19. COH-30308 Added a new append method to the NamedQueue API to add an element to a queue and return a numeric identifier for the added element.
  20. COH-30158 Added Listener Key Count, Listener Filter Count and Listener Registration Count to report-cache-storage.xml.
  21. COH-30148 Added support to allow the definition of custom executors for the remote executor service via XML configuration.
  22. COH-30142 Added support for advanced task orchestration across multiple JVMs via the RemoteExecutor API.
  23. COH-30058 Reduced memory allocation when creating a PartitionSet instance for a single partition, to improve memory profile of parallel queries against caches with high partition count.
  24. COH-30039 The coherence-json module's POF configuration file is now auto discoverable when using POF serialization.
  25. COH-30005 Added the ability to use the Helidon 4 in place of Netty when using the Coherence Java gRPC client.
  26. COH-29969 Added support for use of Java records as portable types.
  27. COH-29934 Added support for macro parameter expansion to <cdi:bean/> content expression.
  28. COH-29861 Added support for Java records to UniversalExtractor.
  29. COH-29791 Enhanced POF deserialization error messages to show the ID of the field being deserialized.
  30. COH-29784 Improved the cleanup process of persistence files to handle case when data is deleted followed by a period with no cache activity.
  31. COH-29778 Added support for JDK 21 VirtualThread-per-task executors to the Coherence Executor Service.
  32. COH-29757 Reduced the overhead of key set manipulation when applying indexes.
  33. COH-29737 Improved deserialization performance of very large byte arrays (> 100MB).
  34. COH-29676 Improved the process of loading management-http-config.xml so that the file can be overridden by placing another management-http-config.xml file in the class path before coherence.jar.
  35. COH-29598 Improved the process of loading management-config.xml so that the file can be overridden by placing another management-config.xml file in the class path or module path before coherence.jar.
  36. COH-28552 Improved the filter reordering logic for composite filters.
  37. COH-28463 Added the ability to configure distributed service partition count using two system properties: coherence.service.partitions and coherence.service.<distributed-service>.partitions.
  38. COH-27956 Added support for the use of final fields within portable types.
  39. COH-25846 Updated server-side JavaScript integration to work with GraalVM for JDK 21 and GraalVM Truffle 23.1.4 libraries.
  40. COH-24445 Added cache backed implementations of java.util.Queue and Deque, and java.util.concurrent BlockingQueue and BlockingDeque.
  41. COH-17089 Made the opening of persistent stores gradual. Underlying store files, one per partition, will only be created when they start containing data.

For more information see the Core Improvements documentation.

Breaking changes in Coherence CE 24.09

The following lists subset of bugs fixed that are considered "breaking" changes:

  1. COH-30699 Fixed an issue where the id property of the @PortableType annotation was not mandatory and could lead to issues with serialization compatibility and schema evolvability. This is a breaking change and requires a unique 'id' attribute to be set on all usages of the annotation.

Bugs Fixed since Coherence CE 24.03

  1. COH-31000 Updated Protocol Buffers (protobuf) version to 3.25.5.
  2. COH-30969 Fixed an issue where InFilter queries could take longer to return.
  3. COH-30950 Fix equality and hashCode for UniversalExtractor(UE), used by indexing, when UE name is a JavaBean accessor but missing method suffix, "()", , i.e. UE("getProperty") is now equivalent to UE("getProperty()") and ReflectionExtractor("getProperty").
  4. COH-30939 Fixed a thread safety issue when calling removeAll on SafeHashMap.
  5. COH-30928 Updated the executor services CronTask to allow the user to configure whether or not the wrapped task should be cloned upon each successful execution or not where as previously, it always performed the clone which prevents the task from maintaining internal state.
  6. COH-30916 Fixed an issue where performing a rolling upgrade would cause a NullPointerException and make the cache service restart.
  7. COH-30907 Fixed an issue that prevented the use of additional filters when using NamedOrchestration to orchestrate tasks to the executor service.
  8. COH-30845 Fixed an issue where entry processor invocations may never be re-sent when re-distribution takes place at the same time.
  9. COH-30841 Deprecated ImmutableArrayList.getSortedSet for removal. Both this method and the SortedSet interface implementation will be removed from ImmutableArrayList in a future release.
  10. COH-30830 Fixed an issue where ContinuousQueryCache did not handle NamedCacheDeactivationListener registrations correctly. This can cause issues if using View Scheme on Extend or gRPC Proxy servers.
  11. COH-30828 Fixed an issue where the history file was not getting saved to disk for CohQL query console & Coherence console when using jline.jar.
  12. COH-30804 Enhanced the service startup messages for Partitioned, Invocation and Proxy services to display the serializer used.
  13. COH-30782 Fixed an issue when using Coherence with Helidon 4.x where you could get filter status REJECTED message.
  14. COH-30762 Fixed an issue where a rolling upgrade was not possible in some cases when using view caches due to a version compatability issue.
  15. COH-30735 Bumped the Helidon 3 version to 3.2.9.
  16. COH-30646 Fixed regression in CohQL query.sh by adding new command line argument "-v" to indicate that the CohQL statement should be echo'ed to output. Also fixed unhandled JLine exceptions for EOF and user interruption.
  17. COH-30570 Added an additional property (pofIndexPackages) to the Coherence Gradle plugin to limit the Java packages to scan (by providing 1 or more package names) when indexing @PortableType-annotated classes.
  18. COH-30539 Fixed an issue where the forceRecovery operation was not present in the management-swagger.json for Management over REST
  19. COH-30533 Fixed an issue where specifying a wrong value for persistence mode would be silently ignored and default to on-demand.
  20. COH-30472 Fixed an issue where deserialization of reflection based extractors may be rejected when running in WebLogic.
  21. COH-30438 Fixed an issue that resulted in unnecessary deserialization of entry values during write-behind.
  22. COH-30431 Removed an unnecessary stack trace that is logged when an Extend connection is closed.
  23. COH-30427 Fixed an issue where version compatibility checks could fail when parsing CE versions which could manifest as serialization compatibility exceptions when doing a rolling upgrade.
  24. COH-30426 Added the ability to reference property names of JSON data and Java Record in CohQL. Note that older .NET and C++ extend clients using QueryHelper need to be upgraded to work with this change.
  25. COH-30420 Fixed an issue where new channels are not allocated to topic subscribers if a publisher increases the channel count. This particularly applies when performing a cluster restart using active persistence.
  26. COH-30323 Fixed an issue where write-delay setting on ReadWriteBackingMap wasn't honored after the initial delay.
  27. COH-30319 Fixed an issue where the Coherence health API could report ready before all services had started.
  28. COH-30298 Added defensive guards against OpenTracing tracer implementations that don't conform to the specification.
  29. COH-30247 Fixed an issue where the coherence.distributed.partitioncount system property was not honored when using the default cache configuration.
  30. COH-30209 Fixed an issue where rolling restart with persistence done concurrently by 2 or more nodes may result in the cache service going into the ORPHANED state and require a cluster restart.
  31. COH-30178 Fixed an issue which could prevent tasks from being executed by RemoteExecutors.
  32. COH-30157 Fixed an issue where the cluster service may be stopped in very rare circumstances due to an unhandled UnsupportedOperationException.
  33. COH-30132 Fixed an issue where a ClassCastException or NullPointerException may be thrown by InvocableMap during service config processing in some very rare scenarios.
  34. COH-30067 Fixed an issue where CacheMappingRegistry.register() or SchemeMappingRegistry.register() will throw a NullPointerException if the registry is not initialized.
  35. COH-30023 Fixed an issue where, in certain cases, remote invocation using an ArrayFilter would use excessive CPU.
  36. COH-30006 Fixed an issue where topic subscribers could become disconnected and hang attempting to reconnect.
  37. COH-29996 Fixed an issue where the expiry delay was ignored when calling put on a cache using the gRPC API with a Helidon 4 gRPC proxy server.
  38. COH-29822 Fixed an issue where XSD schema validation may fail in coherence-operational-config.xsd when using JDK22 or greater and setting -Djdk.xml.jdkcatalog.resolve=strict.
  39. COH-29808 Updated Netty to version 4.1.108.Final.
  40. COH-29765 Fixed an issue where multiple long running tasks may prevent other tasks from being executed by concurrent Executors.
  41. COH-29725 Fixed an issue where the executor service would recreate a failed-over task upon re-execution after a yield.
  42. COH-29647 Fixed an issue where the executor service would incorrectly increment the tasks-in-progress count when re-executing a yielded task.
  43. COH-29570 Fixed serialization of supplemental (4-byte) UTF-8 characters when serializing strings.
  44. COH-29179 Fixed an issue where the service thread would not heartbeat when all daemon pool threads are stuck.
  45. COH-28721 Fixed an issue where near cache key lock(s) were not being properly released when the back map is truncated and the near cache is using the PRESENT invalidation strategy. The observable failure is thread(s) hung waiting for near cache key locks that are never released.
  46. COH-26683 Fixed an issue where MessageBus would heartbeat at double the configured interval.
  47. COH-25080 Fixed an issue where persistence files could become corrupted and hamper recovery in the event of an ungraceful shutdown.
  48. COH-24703 Removed an unnecessary stack trace that is logged when a member leaves a cluster.
  49. COH-23555 Fixed an issue where near, view, and continuous query caches may contain stale data after snapshot recovery.