diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index e75feaff686..fc95dbdb7c4 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -266,8 +266,8 @@ Apache Software License, Version 2.
- lib/org.eclipse.jetty-jetty-util-ajax-9.4.46.v20220331.jar [22]
- lib/org.rocksdb-rocksdbjni-6.29.4.1.jar [23]
- lib/com.beust-jcommander-1.78.jar [24]
-- lib/com.yahoo.datasketches-memory-0.8.3.jar [25]
-- lib/com.yahoo.datasketches-sketches-core-0.8.3.jar [25]
+- lib/org.apache.datasketches-datasketches-java-3.2.0.jar [25]
+- lib/org.apache.datasketches-datasketches-memory-2.0.0.jar [25]
- lib/net.jpountz.lz4-lz4-1.3.0.jar [26]
- lib/com.google.api.grpc-proto-google-common-protos-2.0.1.jar [28]
- lib/com.google.code.gson-gson-2.8.9.jar [29]
@@ -338,7 +338,7 @@ Apache Software License, Version 2.
[22] Source available at https://github.com/eclipse/jetty.project/tree/jetty-9.4.46.v20220331
[23] Source available at https://github.com/facebook/rocksdb/tree/v6.22.1
[24] Source available at https://github.com/cbeust/jcommander/tree/1.78
-[25] Source available at https://github.com/DataSketches/sketches-core/tree/sketches-0.8.3
+[25] Source available at https://github.com/apache/datasketches-java/tree/3.2.0
[26] Source available at https://github.com/lz4/lz4-java/tree/1.3.0
[28] Source available at https://github.com/googleapis/googleapis
[29] Source available at https://github.com/google/gson/tree/gson-parent-2.8.9
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index 7fb754fc3ba..6736b046a0b 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -266,8 +266,8 @@ Apache Software License, Version 2.
- lib/org.eclipse.jetty-jetty-util-ajax-9.4.46.v20220331.jar [22]
- lib/org.rocksdb-rocksdbjni-6.29.4.1.jar [23]
- lib/com.beust-jcommander-1.78.jar [24]
-- lib/com.yahoo.datasketches-memory-0.8.3.jar [25]
-- lib/com.yahoo.datasketches-sketches-core-0.8.3.jar [25]
+- lib/org.apache.datasketches-datasketches-java-3.2.0.jar [25]
+- lib/org.apache.datasketches-datasketches-memory-2.0.0.jar [25]
- lib/net.jpountz.lz4-lz4-1.3.0.jar [26]
- lib/com.google.api.grpc-proto-google-common-protos-2.0.1.jar [28]
- lib/com.google.code.gson-gson-2.8.9.jar [29]
@@ -335,7 +335,7 @@ Apache Software License, Version 2.
[22] Source available at https://github.com/eclipse/jetty.project/tree/jetty-9.4.46.v20220331
[23] Source available at https://github.com/facebook/rocksdb/tree/v6.16.4
[24] Source available at https://github.com/cbeust/jcommander/tree/1.78
-[25] Source available at https://github.com/DataSketches/sketches-core/tree/sketches-0.8.3
+[25] Source available at https://github.com/apache/datasketches-java/tree/3.2.0
[26] Source available at https://github.com/lz4/lz4-java/tree/1.3.0
[28] Source available at https://github.com/googleapis/googleapis
[29] Source available at https://github.com/google/gson/tree/gson-parent-2.8.9
diff --git a/dependencies.gradle b/dependencies.gradle
index efc1615f976..764ff371073 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -36,6 +36,7 @@ depVersions = [
commonsLang3: "3.6",
commonsBeanutils: "1.9.3",
curator: "5.1.0",
+ datasketches: "3.2.0",
dockerJava: "3.2.13",
dropwizard: "4.1.12.1",
errorprone: "2.4.0",
@@ -86,7 +87,6 @@ depVersions = [
thrift: "0.14.2",
testcontainers: "1.16.3",
vertx: "3.9.8",
- yahooDatasketches: "0.8.3",
zookeeper: "3.8.0",
]
@@ -115,6 +115,7 @@ depLibs = [
curatorRecipes: dependencies.create("org.apache.curator:curator-recipes:${depVersions.curator}") {
exclude group: 'org.apache.curator', module: 'curator-framework'
},
+ datasketches: "org.apache.datasketches:datasketches-java:${depVersions.datasketches}",
dockerJava: "com.github.docker-java:docker-java:${depVersions.dockerJava}",
errorprone: "com.google.errorprone:error_prone_annotations:${depVersions.errorprone}",
etcd: dependencies.create("io.etcd:jetcd-core:${depVersions.etcd}") {
@@ -235,7 +236,6 @@ depLibs = [
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
exclude group: 'io.netty'
},
- yahooDatasketches: "com.yahoo.datasketches:sketches-core:${depVersions.yahooDatasketches}",
zookeeper: dependencies.create("org.apache.zookeeper:zookeeper:${depVersions.zookeeper}") {
exclude group: 'io.netty'
exclude group: 'ch.qos.logback'
diff --git a/pom.xml b/pom.xml
index 3fc2e1d74eb..3c1429d735d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,7 +157,7 @@
9.1.3
2.0.9
0.8.1
- 0.8.3
+ 3.2.0
4.5.13
4.4.15
3.19.2
@@ -626,8 +626,8 @@
- com.yahoo.datasketches
- sketches-core
+ org.apache.datasketches
+ datasketches-java
${datasketches.version}
diff --git a/src/owasp-dependency-check-suppressions.xml b/src/owasp-dependency-check-suppressions.xml
index 082dfae0364..3ac9ad8c80e 100644
--- a/src/owasp-dependency-check-suppressions.xml
+++ b/src/owasp-dependency-check-suppressions.xml
@@ -335,5 +335,13 @@ file name: netty-tcnative-boringssl-static-2.0.50.Final-windows-x86_64.jar
b6211fb3224bfd2dadf10273a15211f592174652
CVE-2015-1205
+
+
+
+ ceb2774dcd51210437a2f139b64d33213bf7f523
+ CVE-2021-40531
+
diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
index d99f1a3c974..4c181b1f5a4 100644
--- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
+++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
@@ -32,7 +32,7 @@ dependencies {
implementation depLibs.prometheusSimpleClientHotspot
implementation depLibs.prometheusSimpleClientServlet
implementation depLibs.slf4j
- implementation depLibs.yahooDatasketches
+ implementation depLibs.datasketches
testCompileOnly depLibs.lombok
testImplementation depLibs.junit
diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
index 0956d579c13..40eaa2a203c 100644
--- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
+++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
@@ -61,10 +61,10 @@
com.google.guava
guava
-
+
- com.yahoo.datasketches
- sketches-core
+ org.apache.datasketches
+ datasketches-java
diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
index 403cb18ac85..5bd51ceb233 100644
--- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
+++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
@@ -16,11 +16,6 @@
*/
package org.apache.bookkeeper.stats.prometheus;
-import com.yahoo.sketches.quantiles.DoublesSketch;
-import com.yahoo.sketches.quantiles.DoublesSketchBuilder;
-import com.yahoo.sketches.quantiles.DoublesUnion;
-import com.yahoo.sketches.quantiles.DoublesUnionBuilder;
-
import io.netty.util.concurrent.FastThreadLocal;
import java.util.Map;
@@ -31,6 +26,11 @@
import org.apache.bookkeeper.stats.OpStatsData;
import org.apache.bookkeeper.stats.OpStatsLogger;
+import org.apache.datasketches.quantiles.DoublesSketch;
+import org.apache.datasketches.quantiles.DoublesSketchBuilder;
+import org.apache.datasketches.quantiles.DoublesUnion;
+import org.apache.datasketches.quantiles.DoublesUnionBuilder;
+import org.apache.datasketches.quantiles.UpdateDoublesSketch;
/**
* OpStatsLogger implementation that uses DataSketches library to calculate the approximated latency quantiles.
@@ -193,8 +193,8 @@ public void initializeThread(Map labels) {
}
private static class LocalData {
- private final DoublesSketch successSketch = new DoublesSketchBuilder().build();
- private final DoublesSketch failSketch = new DoublesSketchBuilder().build();
+ private final UpdateDoublesSketch successSketch = new DoublesSketchBuilder().build();
+ private final UpdateDoublesSketch failSketch = new DoublesSketchBuilder().build();
private final StampedLock lock = new StampedLock();
}