Hello All, *About DataSketches-Java*
This is the core Java component of the DataSketches library that includes all the sketch algorithms in production-ready packages. These sketches can be called directly from this component or used in conjunction with the adaptor components such as Hadoop Pig, Hadoop Hive, or the aggregator adaptors built into Apache Druid. *NOTES* - This release runs on Java 17. - This release leverages the new Java Foreign Function & Memory (FFM) API capability (JEP 412 <https://openjdk.org/jeps/412>), which is in *incubation* in Java 17. This means that Java 17 is required to compile this code and at runtime. The location of the FFM code was moved from *jdk.incubator.foreign* in Java 17 to its position for *preview* in Java 21 at *java.base/java.lang.foreign*. As a result, code compiled with Java 17 FFM will not run with Java 21, the next LTS. Java does not provide backward compatibility for older *incubation* class bytecode. - There are some changes in the DataSketches-Java API, due to the switch to leveraging the new FFM code, especially for methods that must deal with off-heap memory. These changes are a result of the DataSketches-Java-7.0.0 dependency on DataSketches-Memory-4.1.0, which manages all the direct memory. These changes are especially evident in the test code, which can be used as examples. - This release contains a fix for a bug found in the Theta Sketch compression algorithm in release 7.0.0 and 6.1.1. For example, to allocate direct (off-heap) memory: *For DataSketches-Java 6.1.1 using DataSketches-Memory 3.0.2 (Java 8, 11)* > try (WritableMemory wmem = WritableMemory.allocateDirect(4096)) { > ... > } //wmem is closed where WritableMemory is a class of DataSketches-Memory. *In DataSketches-Java 7.0.1 using DataSketches-Memory 4.1.0 (Java 17)* > try (ResourceScope scope = (wmem = WritableMemory.allocateDirect(4096). > scope()) { > ... > } //wmem is closed where *ResourceScope* is an FFM class.