You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by jm...@apache.org on 2022/04/29 05:36:51 UTC

[datasketches-characterization] 01/01: change to support command-line builds

This is an automated email from the ASF dual-hosted git repository.

jmalkin pushed a commit to branch mvn_build
in repository https://gitbox.apache.org/repos/asf/datasketches-characterization.git

commit c07fa8bafa0da6270f03c338e71fad8c99bd3d7f
Author: Jon Malkin <jm...@users.noreply.github.com>
AuthorDate: Thu Apr 28 22:36:38 2022 -0700

    change to support command-line builds
---
 pom.xml                                                    |  8 ++++----
 src/main/java/org/apache/datasketches/Job.java             |  4 +++-
 .../characterization/hash/HashBytesSpeedProfile.java       |  6 +++---
 .../characterization/hash/HashLongsSpeedProfile.java       |  2 +-
 .../characterization/hll/HllUpdateSpeedProfile.java        | 14 ++++++++++----
 .../characterization/memory/HeapUtf8SpeedProfile.java      |  2 +-
 .../characterization/memory/MemoryDirectSpeedProfile.java  | 12 ++++++++----
 .../characterization/memory/UnsafeDirectSpeedProfile.java  |  8 ++++----
 .../quantiles/DoublesSketchSpeedProfile.java               |  6 +++---
 .../quantiles/ItemsSketchSpeedProfile.java                 |  2 +-
 .../characterization/theta/ThetaSerDeProfile.java          |  2 +-
 .../characterization/theta/ThetaUpdateSpeedProfile.java    | 12 ++++++++----
 .../theta/concurrent/ConcurrentThetaAccuracyProfile.java   | 14 +++++++++-----
 .../ConcurrentThetaMultithreadedSpeedProfile.java          |  6 +++---
 .../concurrent/ConcurrentThetaUpdateSpeedProfile.java      |  6 +++---
 .../tuple/AodSketchUpdateSpeedProfile.java                 | 12 ++++++++----
 16 files changed, 70 insertions(+), 46 deletions(-)

diff --git a/pom.xml b/pom.xml
index d579ae5..d17f8b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,7 +84,7 @@ under the License.
   <properties>
     <!-- UNIQUE FOR THIS JAVA COMPONENT -->
     <datasketches-memory.version>2.0.0</datasketches-memory.version>
-    <datasketches-java.version>3.1.0</datasketches-java.version>
+    <datasketches-java.version>3.2.0</datasketches-java.version>
     <druid-momentsketch.version>0.16.0-incubating</druid-momentsketch.version>
     <druid-histogram.version>0.16.0-incubating</druid-histogram.version>
     <druid-hll.version>0.16.0-incubating</druid-hll.version>
@@ -97,9 +97,9 @@ under the License.
 
     <!-- System-wide properties -->
     <maven.version>3.5.0</maven.version>
-    <java.version>1.8</java.version>
-    <maven.compiler.source>${java.version}</maven.compiler.source>
-    <maven.compiler.target>${java.version}</maven.compiler.target>
+    <java.version>11</java.version>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
     <argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine>
     <charset.encoding>UTF-8</charset.encoding>
     <project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding>
diff --git a/src/main/java/org/apache/datasketches/Job.java b/src/main/java/org/apache/datasketches/Job.java
index c34a86b..0b7ce29 100644
--- a/src/main/java/org/apache/datasketches/Job.java
+++ b/src/main/java/org/apache/datasketches/Job.java
@@ -270,7 +270,7 @@ public class Job {
     final JobProfile profile;
     try {
       final Class<?> clazz = Class.forName(profileStr);
-      profile = (JobProfile) clazz.newInstance();
+      profile = (JobProfile) clazz.getDeclaredConstructor().newInstance();
     } catch (final Exception e) {
       throw new RuntimeException("Cannot instantiate " + profileStr + "\n" + e);
     }
@@ -296,6 +296,7 @@ public class Job {
   /**
    * The JVM may call this method to close the PrintWriter resources.
    */
+  /* DEPRECATED in Object since java 9
   @Override
   protected void finalize() throws Throwable {
     try {
@@ -309,6 +310,7 @@ public class Job {
       super.finalize();
     }
   }
+   */
 
   /**
    * Run multiple jobs from the command line
diff --git a/src/main/java/org/apache/datasketches/characterization/hash/HashBytesSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/hash/HashBytesSpeedProfile.java
index 5ed0784..f466ac2 100644
--- a/src/main/java/org/apache/datasketches/characterization/hash/HashBytesSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hash/HashBytesSpeedProfile.java
@@ -19,9 +19,9 @@
 
 package org.apache.datasketches.characterization.hash;
 
-import static org.apache.datasketches.memory.UnsafeUtil.unsafe;
+import static org.apache.datasketches.memory.internal.UnsafeUtil.unsafe;
 
-import org.apache.datasketches.hash.MurmurHash3v2;
+import org.apache.datasketches.memory.MurmurHash3v2;
 import org.apache.datasketches.hash.XxHash;
 import org.apache.datasketches.memory.WritableMemory;
 
@@ -40,7 +40,7 @@ public class HashBytesSpeedProfile extends BaseHashSpeedProfile {
   @Override
   void configure() { //for all trials at a point
     in = new byte[p.x];
-    wmem = WritableMemory.wrap(in);
+    wmem = WritableMemory.writableWrap(in);
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/characterization/hash/HashLongsSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/hash/HashLongsSpeedProfile.java
index 9d4deee..cadf4b3 100644
--- a/src/main/java/org/apache/datasketches/characterization/hash/HashLongsSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hash/HashLongsSpeedProfile.java
@@ -20,7 +20,7 @@
 package org.apache.datasketches.characterization.hash;
 
 import org.apache.datasketches.hash.MurmurHash3;
-import org.apache.datasketches.hash.MurmurHash3v2;
+import org.apache.datasketches.memory.MurmurHash3v2;
 import org.apache.datasketches.hash.XxHash;
 
 /**
diff --git a/src/main/java/org/apache/datasketches/characterization/hll/HllUpdateSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/hll/HllUpdateSpeedProfile.java
index 24b8542..2468424 100644
--- a/src/main/java/org/apache/datasketches/characterization/hll/HllUpdateSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/hll/HllUpdateSpeedProfile.java
@@ -22,7 +22,7 @@ package org.apache.datasketches.characterization.hll;
 import org.apache.datasketches.characterization.uniquecount.BaseUpdateSpeedProfile;
 import org.apache.datasketches.hll.HllSketch;
 import org.apache.datasketches.hll.TgtHllType;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
@@ -30,7 +30,7 @@ import org.apache.datasketches.memory.WritableMemory;
  */
 public class HllUpdateSpeedProfile extends BaseUpdateSpeedProfile {
   private HllSketch sketch;
-  private WritableDirectHandle handle;
+  private WritableHandle handle;
   private WritableMemory wmem;
 
   @Override
@@ -47,7 +47,7 @@ public class HllUpdateSpeedProfile extends BaseUpdateSpeedProfile {
     if (offheap) {
       final int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgK, tgtHllType);
       handle = WritableMemory.allocateDirect(bytes);
-      wmem = handle.get();
+      wmem = handle.getWritable();
       sketch = new HllSketch(lgK, tgtHllType, wmem);
     } else {
       sketch = new HllSketch(lgK, tgtHllType);
@@ -56,7 +56,13 @@ public class HllUpdateSpeedProfile extends BaseUpdateSpeedProfile {
 
   @Override
   public void cleanup() {
-    if (handle != null) { handle.close(); }
+    try {
+      if (handle != null) {
+        handle.close();
+      }
+    } catch (final Exception e) {
+      // do nothing
+    }
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/characterization/memory/HeapUtf8SpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/memory/HeapUtf8SpeedProfile.java
index ea9d5b7..ce8ff1a 100644
--- a/src/main/java/org/apache/datasketches/characterization/memory/HeapUtf8SpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/memory/HeapUtf8SpeedProfile.java
@@ -22,7 +22,7 @@ package org.apache.datasketches.characterization.memory;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 import org.apache.datasketches.memory.Memory;
-import org.apache.datasketches.memory.Util.RandomCodePoints;
+import org.apache.datasketches.memory.internal.Util.RandomCodePoints;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
diff --git a/src/main/java/org/apache/datasketches/characterization/memory/MemoryDirectSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/memory/MemoryDirectSpeedProfile.java
index 8d46858..1a3cd35 100644
--- a/src/main/java/org/apache/datasketches/characterization/memory/MemoryDirectSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/memory/MemoryDirectSpeedProfile.java
@@ -19,7 +19,7 @@
 
 package org.apache.datasketches.characterization.memory;
 
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 
 /**
@@ -27,19 +27,23 @@ import org.apache.datasketches.memory.WritableMemory;
  */
 public class MemoryDirectSpeedProfile extends BaseSpeedProfile {
   int arrLongs;
-  WritableDirectHandle wh;
+  WritableHandle wh;
   WritableMemory wmem;
 
   @Override
   void configure(final int arrLongs) {
     this.arrLongs = arrLongs;
     wh = WritableMemory.allocateDirect(arrLongs << 3);
-    wmem = wh.get();
+    wmem = wh.getWritable();
   }
 
   @Override
   void close() {
-    wh.close();
+    try {
+      wh.close();
+    } catch (final Exception e) {
+      // do nothing
+    }
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/characterization/memory/UnsafeDirectSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/memory/UnsafeDirectSpeedProfile.java
index f77711c..d2edd1b 100644
--- a/src/main/java/org/apache/datasketches/characterization/memory/UnsafeDirectSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/memory/UnsafeDirectSpeedProfile.java
@@ -19,7 +19,7 @@
 
 package org.apache.datasketches.characterization.memory;
 
-import static org.apache.datasketches.memory.UnsafeUtil.unsafe;
+import static org.apache.datasketches.memory.internal.UnsafeUtil.unsafe;
 
 /**
  * @author Lee Rhodes
@@ -32,7 +32,7 @@ public class UnsafeDirectSpeedProfile extends BaseSpeedProfile {
   @Override
   void configure(final int arrLongs) { //once per X point
     this.arrLongs = arrLongs;
-    address = unsafe.allocateMemory(arrLongs << 3);
+    address = unsafe.allocateMemory((long) arrLongs << 3);
   }
 
   @Override
@@ -48,7 +48,7 @@ public class UnsafeDirectSpeedProfile extends BaseSpeedProfile {
       long trialSum = 0;
 
       startTime_nS = System.nanoTime();
-      for (int i = 0; i < arrLongs; i++) { trialSum += unsafe.getLong(address + (i << 3)); }
+      for (int i = 0; i < arrLongs; i++) { trialSum += unsafe.getLong(address + ((long) i << 3)); }
       stopTime_nS = System.nanoTime();
 
       if (trialSum != checkSum) {
@@ -57,7 +57,7 @@ public class UnsafeDirectSpeedProfile extends BaseSpeedProfile {
     } else { //write
 
       startTime_nS = System.nanoTime();
-      for (int i = 0; i < arrLongs; i++) { unsafe.putLong(address + (i << 3), i); }
+      for (int i = 0; i < arrLongs; i++) { unsafe.putLong(address + ((long) i << 3), i); }
       stopTime_nS = System.nanoTime();
 
     }
diff --git a/src/main/java/org/apache/datasketches/characterization/quantiles/DoublesSketchSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/quantiles/DoublesSketchSpeedProfile.java
index d45c0fa..d7b2d2f 100644
--- a/src/main/java/org/apache/datasketches/characterization/quantiles/DoublesSketchSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/quantiles/DoublesSketchSpeedProfile.java
@@ -81,9 +81,9 @@ public class DoublesSketchSpeedProfile extends BaseQuantilesSpeedProfile {
     Arrays.sort(queryValues);
     if (useDirect) {
       updateSketchMemory = WritableMemory
-          .wrap(new byte[DoublesSketch.getUpdatableStorageBytes(k, streamLength)]);
+          .writableWrap(new byte[DoublesSketch.getUpdatableStorageBytes(k, streamLength)]);
       compactSketchMemory = WritableMemory
-          .wrap(new byte[DoublesSketch.getCompactStorageBytes(k, streamLength)]);
+          .writableWrap(new byte[DoublesSketch.getCompactStorageBytes(k, streamLength)]);
     }
     resetStats();
   }
@@ -131,7 +131,7 @@ public class DoublesSketchSpeedProfile extends BaseQuantilesSpeedProfile {
       final long stopSerialize = System.nanoTime();
       updateSerializeTimeNs += stopSerialize - startSerialize;
 
-      final WritableMemory mem = WritableMemory.wrap(bytes);
+      final WritableMemory mem = WritableMemory.writableWrap(bytes);
       final long startDeserialize = System.nanoTime();
       if (useDirect) {
         UpdateDoublesSketch.wrap(mem);
diff --git a/src/main/java/org/apache/datasketches/characterization/quantiles/ItemsSketchSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/quantiles/ItemsSketchSpeedProfile.java
index 7df44c2..cf333de 100644
--- a/src/main/java/org/apache/datasketches/characterization/quantiles/ItemsSketchSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/quantiles/ItemsSketchSpeedProfile.java
@@ -111,7 +111,7 @@ public class ItemsSketchSpeedProfile extends BaseQuantilesSpeedProfile {
     final long stopSerialize = System.nanoTime();
     serializeTimeNs += stopSerialize - startSerialize;
 
-    final WritableMemory mem = WritableMemory.wrap(bytes);
+    final WritableMemory mem = WritableMemory.writableWrap(bytes);
     final long startDeserialize = System.nanoTime();
     ItemsSketch.getInstance(mem, COMPARATOR, SERDE);
     final long stopDeserialize = System.nanoTime();
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/ThetaSerDeProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/ThetaSerDeProfile.java
index 7084a5a..811af2f 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/ThetaSerDeProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/ThetaSerDeProfile.java
@@ -59,7 +59,7 @@ public final class ThetaSerDeProfile extends BaseSerDeProfile {
     if (direct) {
       final int bytes = Sketch.getMaxUpdateSketchBytes(k);
       final byte[] memArr = new byte[bytes];
-      final WritableMemory wmem = WritableMemory.wrap(memArr);
+      final WritableMemory wmem = WritableMemory.writableWrap(memArr);
       sketch = udBldr.build(wmem);
     } else {
       sketch = udBldr.build();
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUpdateSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUpdateSpeedProfile.java
index 1d726b6..1f27c1e 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/ThetaUpdateSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/ThetaUpdateSpeedProfile.java
@@ -22,7 +22,7 @@ package org.apache.datasketches.characterization.theta;
 import org.apache.datasketches.Family;
 import org.apache.datasketches.ResizeFactor;
 import org.apache.datasketches.characterization.uniquecount.BaseUpdateSpeedProfile;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.theta.Sketch;
 import org.apache.datasketches.theta.UpdateSketch;
@@ -33,7 +33,7 @@ import org.apache.datasketches.theta.UpdateSketchBuilder;
  */
 public class ThetaUpdateSpeedProfile extends BaseUpdateSpeedProfile {
   protected UpdateSketch sketch;
-  private WritableDirectHandle handle;
+  private WritableHandle handle;
   private WritableMemory wmem;
 
   @Override
@@ -54,7 +54,7 @@ public class ThetaUpdateSpeedProfile extends BaseUpdateSpeedProfile {
     if (offheap) {
       final int bytes = Sketch.getMaxUpdateSketchBytes(k);
       handle = WritableMemory.allocateDirect(bytes);
-      wmem = handle.get();
+      wmem = handle.getWritable();
       sketch = udBldr.build(wmem);
     } else {
       sketch = udBldr.build();
@@ -63,7 +63,11 @@ public class ThetaUpdateSpeedProfile extends BaseUpdateSpeedProfile {
 
   @Override
   public void cleanup() {
-    if (handle != null) { handle.close(); }
+    try {
+      if (handle != null) { handle.close(); }
+    } catch (final Exception e) {
+      // do nothing
+    }
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
index 5f99317..1d16435 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaAccuracyProfile.java
@@ -23,7 +23,7 @@ import static org.apache.datasketches.Util.DEFAULT_UPDATE_SEED;
 
 import org.apache.datasketches.characterization.AccuracyStats;
 import org.apache.datasketches.characterization.uniquecount.BaseAccuracyProfile;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.theta.Sketch;
 import org.apache.datasketches.theta.UpdateSketch;
@@ -42,7 +42,7 @@ public class ConcurrentThetaAccuracyProfile extends BaseAccuracyProfile {
   private boolean ordered;
   private boolean offHeap;
   private boolean rebuild; //Theta QS Sketch Accuracy
-  private WritableDirectHandle wdh;
+  private WritableHandle wdh;
   private WritableMemory wmem;
 
   @Override
@@ -60,7 +60,7 @@ public class ConcurrentThetaAccuracyProfile extends BaseAccuracyProfile {
 
     if (offHeap) {
       wdh = WritableMemory.allocateDirect(maxSharedUpdateBytes);
-      wmem = wdh.get();
+      wmem = wdh.getWritable();
     } else {
       wmem = WritableMemory.allocate(maxSharedUpdateBytes);
     }
@@ -94,8 +94,12 @@ public class ConcurrentThetaAccuracyProfile extends BaseAccuracyProfile {
 
   @Override
   public void cleanup() {
-    if (wdh != null) {
-      wdh.close();
+    try {
+      if (wdh != null) {
+        wdh.close();
+      }
+    } catch (final Exception e) {
+      // do nothing
     }
   }
 
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaMultithreadedSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaMultithreadedSpeedProfile.java
index 7a40362..29c1762 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaMultithreadedSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaMultithreadedSpeedProfile.java
@@ -26,7 +26,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.datasketches.characterization.concurrent.ConcurrentTestContext;
 import org.apache.datasketches.characterization.concurrent.ConcurrentTestThread;
 import org.apache.datasketches.characterization.uniquecount.BaseUpdateSpeedProfile;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.theta.Sketch;
 import org.apache.datasketches.theta.UpdateSketch;
@@ -47,7 +47,7 @@ public class ConcurrentThetaMultithreadedSpeedProfile extends BaseUpdateSpeedPro
   private boolean offHeap;
   private int poolThreads;
   private double maxConcurrencyError;
-  private WritableDirectHandle wdh;
+  private WritableHandle wdh;
   private WritableMemory wmem;
 
   private int numWriterThreads;
@@ -77,7 +77,7 @@ public class ConcurrentThetaMultithreadedSpeedProfile extends BaseUpdateSpeedPro
 
     if (offHeap) {
       wdh = WritableMemory.allocateDirect(maxSharedUpdateBytes);
-      wmem = wdh.get();
+      wmem = wdh.getWritable();
     } else {
       wmem = null; //WritableMemory.allocate(maxSharedUpdateBytes);
     }
diff --git a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaUpdateSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaUpdateSpeedProfile.java
index 23c80c1..16ee1fa 100644
--- a/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaUpdateSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/theta/concurrent/ConcurrentThetaUpdateSpeedProfile.java
@@ -22,7 +22,7 @@ package org.apache.datasketches.characterization.theta.concurrent;
 import static org.apache.datasketches.Util.DEFAULT_UPDATE_SEED;
 
 import org.apache.datasketches.characterization.uniquecount.BaseUpdateSpeedProfile;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.theta.Sketch;
 import org.apache.datasketches.theta.UpdateSketch;
@@ -40,7 +40,7 @@ public class ConcurrentThetaUpdateSpeedProfile extends BaseUpdateSpeedProfile {
   private boolean offHeap;
   private int poolThreads;
   private double maxConcurrencyError;
-  private WritableDirectHandle wdh;
+  private WritableHandle wdh;
   private WritableMemory wmem;
 
   /**
@@ -60,7 +60,7 @@ public class ConcurrentThetaUpdateSpeedProfile extends BaseUpdateSpeedProfile {
 
     if (offHeap) {
       wdh = WritableMemory.allocateDirect(maxSharedUpdateBytes);
-      wmem = wdh.get();
+      wmem = wdh.getWritable();
     } else {
       wmem = WritableMemory.allocate(maxSharedUpdateBytes);
     }
diff --git a/src/main/java/org/apache/datasketches/characterization/tuple/AodSketchUpdateSpeedProfile.java b/src/main/java/org/apache/datasketches/characterization/tuple/AodSketchUpdateSpeedProfile.java
index a4a06ae..ab8eb0d 100644
--- a/src/main/java/org/apache/datasketches/characterization/tuple/AodSketchUpdateSpeedProfile.java
+++ b/src/main/java/org/apache/datasketches/characterization/tuple/AodSketchUpdateSpeedProfile.java
@@ -21,7 +21,7 @@ package org.apache.datasketches.characterization.tuple;
 
 import org.apache.datasketches.ResizeFactor;
 import org.apache.datasketches.characterization.uniquecount.BaseUpdateSpeedProfile;
-import org.apache.datasketches.memory.WritableDirectHandle;
+import org.apache.datasketches.memory.WritableHandle;
 import org.apache.datasketches.memory.WritableMemory;
 import org.apache.datasketches.tuple.arrayofdoubles.ArrayOfDoublesUnion;
 import org.apache.datasketches.tuple.arrayofdoubles.ArrayOfDoublesUpdatableSketch;
@@ -29,7 +29,7 @@ import org.apache.datasketches.tuple.arrayofdoubles.ArrayOfDoublesUpdatableSketc
 
 public class AodSketchUpdateSpeedProfile extends BaseUpdateSpeedProfile {
   protected ArrayOfDoublesUpdatableSketch sketch;
-  private WritableDirectHandle handle;
+  private WritableHandle handle;
   private WritableMemory wmem;
 
   @Override
@@ -47,7 +47,7 @@ public class AodSketchUpdateSpeedProfile extends BaseUpdateSpeedProfile {
     if (offheap) {
       final int bytes = ArrayOfDoublesUnion.getMaxBytes(k, numValues);
       handle = WritableMemory.allocateDirect(bytes);
-      wmem = handle.get();
+      wmem = handle.getWritable();
       sketch = udBldr.build(wmem);
     } else {
       sketch = udBldr.build();
@@ -56,7 +56,11 @@ public class AodSketchUpdateSpeedProfile extends BaseUpdateSpeedProfile {
 
   @Override
   public void cleanup() {
-    if (handle != null) { handle.close(); }
+    try {
+      if (handle != null) { handle.close(); }
+    } catch (final Exception e) {
+      // do nothing
+    }
   }
 
   @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org