@@ -114,6 +116,7 @@
adapter-amqp
adapter-jdbc
adapter-pinecone
+ hdf-loader
virtdata-api
@@ -123,6 +126,7 @@
virtdata-lib-random
virtdata-lib-curves4
virtdata-lib-realer
+ virtdata-lib-hdf5
virtdata-userlibs
diff --git a/virtdata-lib-basics/pom.xml b/virtdata-lib-basics/pom.xml
index 1d069da92..1e67c931f 100644
--- a/virtdata-lib-basics/pom.xml
+++ b/virtdata-lib-basics/pom.xml
@@ -82,6 +82,7 @@
5.1.1
test
+
diff --git a/virtdata-lib-hdf5/pom.xml b/virtdata-lib-hdf5/pom.xml
new file mode 100644
index 000000000..6f0ebf6d2
--- /dev/null
+++ b/virtdata-lib-hdf5/pom.xml
@@ -0,0 +1,62 @@
+
+
+
+ 4.0.0
+
+
+ mvn-defaults
+ io.nosqlbench
+ ${revision}
+ ../mvn-defaults
+
+
+ virtdata-lib-hdf5
+ jar
+ virtdata-lib-hdf5
+ http://nosqlbench.io/
+
+ With inspiration from other libraries
+
+
+
+
+ io.nosqlbench
+ virtdata-lib-basics
+ ${revision}
+
+
+
+ io.jhdf
+ jhdf
+ 0.6.10
+
+
+
+
+
+
+
+ src/test/resources
+
+ h5ex_t_float.h5
+
+ true
+
+
+
+
+
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/AbstractHdfFileToVector.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/AbstractHdfFileToVector.java
new file mode 100644
index 000000000..d304bf01a
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/AbstractHdfFileToVector.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.from_long;
+
+import io.jhdf.HdfFile;
+import io.jhdf.api.Dataset;
+import io.nosqlbench.api.content.NBIO;
+
+import java.nio.file.Paths;
+
+public abstract class AbstractHdfFileToVector {
+ protected final HdfFile hdfFile;
+ protected final Dataset dataset;
+ protected final int[] dims;
+
+ public AbstractHdfFileToVector(String filename, String datasetName) {
+ //hdfFile = new HdfFile(NBIO.all().search(filename).first().get().asPath());
+ hdfFile = new HdfFile(Paths.get(filename));
+ //TODO: implement a function to get the dataset by name only without needing the full path
+ dataset = hdfFile.getDatasetByPath(datasetName);
+ dims = dataset.getDimensions();
+ }
+
+ protected Object getDataFrom(long l) {
+ long[] sliceOffset = new long[dims.length];
+ sliceOffset[0] = (l % dims[0]);
+ int[] sliceDimensions = new int[dims.length];
+ sliceDimensions[0] = 1;
+ // Do we want to give the option of reducing vector dimensions here?
+ sliceDimensions[1] = dims[1];
+ return dataset.getData(sliceOffset, sliceDimensions);
+ }
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToVectorArray.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToVectorArray.java
new file mode 100644
index 000000000..1f908fbf4
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToVectorArray.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.from_long.to_array;
+
+import io.nosqlbench.virtdata.api.annotations.Categories;
+import io.nosqlbench.virtdata.api.annotations.Category;
+import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
+import io.nosqlbench.virtdata.library.hdf5.from_long.AbstractHdfFileToVector;
+import io.nosqlbench.virtdata.library.hdf5.helpers.EmbeddingGenerator;
+import io.nosqlbench.virtdata.library.hdf5.helpers.EmbeddingGeneratorFactory;
+
+import java.util.function.LongFunction;
+
+/**
+ * This function reads a vector dataset from an HDF5 file. The dataset itself is not
+ * read into memory, only the metadata (the "dataset" Java Object). The lambda function
+ * reads a single vector from the dataset, based on the long input value. As currently
+ * written this class will only work for datasets with 2 dimensions where the 1st dimension
+ * specifies the number of vectors and the 2nd dimension specifies the number of elements in
+ * each vector. Only datatypes short, int, and float are supported at this time.
+ *
+ * This implementation is specific to returning an array of floats
+ */
+@ThreadSafeMapper
+@Categories(Category.experimental)
+public class HdfFileToVectorArray extends AbstractHdfFileToVector implements LongFunction {
+ private final EmbeddingGenerator embeddingGenerator;
+
+ public HdfFileToVectorArray(String filename, String datasetName) {
+ super(filename, datasetName);
+ embeddingGenerator = EmbeddingGeneratorFactory.getGenerator(dataset.getJavaType().getSimpleName().toLowerCase());
+ }
+ @Override
+ public float[] apply(long l) {
+ Object data = getDataFrom(l);
+ return embeddingGenerator.generateArrayEmbeddingFrom(data, dims);
+ }
+
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorList.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorList.java
new file mode 100644
index 000000000..36d623043
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorList.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.from_long.to_list;
+
+import io.nosqlbench.virtdata.api.annotations.Categories;
+import io.nosqlbench.virtdata.api.annotations.Category;
+import io.nosqlbench.virtdata.api.annotations.ThreadSafeMapper;
+import io.nosqlbench.virtdata.library.hdf5.from_long.AbstractHdfFileToVector;
+import io.nosqlbench.virtdata.library.hdf5.helpers.EmbeddingGenerator;
+import io.nosqlbench.virtdata.library.hdf5.helpers.EmbeddingGeneratorFactory;
+
+import java.util.List;
+import java.util.function.LongFunction;
+
+/**
+ * This function reads a vector dataset from an HDF5 file. The dataset itself is not
+ * read into memory, only the metadata (the "dataset" Java Object). The lambda function
+ * reads a single vector from the dataset, based on the long input value. As currently
+ * written this class will only work for datasets with 2 dimensions where the 1st dimension
+ * specifies the number of vectors and the 2nd dimension specifies the number of elements in
+ * each vector. Only datatypes short, int, and float are supported at this time.
+ *
+ * This implementation is specific to returning a List of Floats, so as to work with the
+ * normalization functions e.g. NormalizeListVector and its variants.
+ */
+@ThreadSafeMapper
+@Categories(Category.experimental)
+public class HdfFileToVectorList extends AbstractHdfFileToVector implements LongFunction> {
+ private final EmbeddingGenerator embeddingGenerator;
+
+ public HdfFileToVectorList(String filename, String datasetName) {
+ super(filename, datasetName);
+ embeddingGenerator = EmbeddingGeneratorFactory.getGenerator(dataset.getJavaType().getSimpleName().toLowerCase());
+ }
+ @Override
+ public List apply(long l) {
+ Object data = getDataFrom(l);
+ return embeddingGenerator.generateListEmbeddingFrom(data, dims);
+ }
+
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/DoubleEmbeddingGenerator.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/DoubleEmbeddingGenerator.java
new file mode 100644
index 000000000..9c869307c
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/DoubleEmbeddingGenerator.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.helpers;
+
+import java.util.List;
+
+public class DoubleEmbeddingGenerator implements EmbeddingGenerator {
+
+ @Override
+ public List generateListEmbeddingFrom(Object o, int[] dims) {
+ // in this case o will always be double[1][x]
+ double[] vector = ((double[][]) o)[0];
+ Float[] vector2 = new Float[vector.length];
+ for (int i = 0; i < vector.length; i++) {
+ vector2[i] = (float) vector[i];
+ }
+ return List.of(vector2);
+ }
+
+ @Override
+ public float[] generateArrayEmbeddingFrom(Object o, int[] dims) {
+ double[] vector = ((double[][]) o)[0];
+ float[] vector2 = new float[vector.length];
+ for (int i = 0; i < vector.length; i++) {
+ vector2[i] = (float) vector[i];
+ }
+ return vector2;
+ }
+
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGenerator.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGenerator.java
new file mode 100644
index 000000000..aed942cd7
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGenerator.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.helpers;
+
+import java.util.List;
+
+public interface EmbeddingGenerator {
+ List generateListEmbeddingFrom(Object o, int[] dims);
+
+ float[] generateArrayEmbeddingFrom(Object o, int[] dims);
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGeneratorFactory.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGeneratorFactory.java
new file mode 100644
index 000000000..f717e3cde
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/EmbeddingGeneratorFactory.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.helpers;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class EmbeddingGeneratorFactory {
+ private static final Map generators = new HashMap<>();
+
+ public static EmbeddingGenerator getGenerator(String type) {
+ String typeLower = type.equalsIgnoreCase("short") ? "int" : type.toLowerCase();
+ switch (typeLower) {
+ case "float" -> {
+ if (!generators.containsKey(type)) {
+ generators.put(type, new FloatEmbeddingGenerator());
+ }
+ return generators.get(type);
+ }
+ case "int" -> {
+ if (!generators.containsKey(type)) {
+ generators.put(type, new IntEmbeddingGenerator());
+ }
+ return generators.get(type);
+ }
+ case "double" -> {
+ if (!generators.containsKey(type)) {
+ generators.put(type, new DoubleEmbeddingGenerator());
+ }
+ return generators.get(type);
+ }
+ default -> throw new RuntimeException("Unknown embedding type: " + type);
+ }
+ }
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/FloatEmbeddingGenerator.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/FloatEmbeddingGenerator.java
new file mode 100644
index 000000000..ca2bb1dd1
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/FloatEmbeddingGenerator.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.helpers;
+
+import java.util.List;
+
+public class FloatEmbeddingGenerator implements EmbeddingGenerator {
+
+ @Override
+ public List generateListEmbeddingFrom(Object o, int[] dims) {
+ // in this case o will always be float[1][x]
+ float[] vector = ((float[][]) o)[0];
+ Float[] vector2 = new Float[vector.length];
+ for (int i = 0; i < vector.length; i++) {
+ vector2[i] = vector[i];
+ }
+ return List.of(vector2);
+ }
+
+ @Override
+ public float[] generateArrayEmbeddingFrom(Object o, int[] dims) {
+ return ((float[][]) o)[0];
+ }
+
+}
diff --git a/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/IntEmbeddingGenerator.java b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/IntEmbeddingGenerator.java
new file mode 100644
index 000000000..bdbdc8ba8
--- /dev/null
+++ b/virtdata-lib-hdf5/src/main/java/io/nosqlbench/virtdata/library/hdf5/helpers/IntEmbeddingGenerator.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.helpers;
+
+import java.util.List;
+
+public class IntEmbeddingGenerator implements EmbeddingGenerator {
+ @Override
+ public List generateListEmbeddingFrom(Object o, int[] dims) {
+ // in this case o will always be int[1][x]
+ int[] vector = ((int[][]) o)[0];
+ Float[] vector2 = new Float[vector.length];
+ for (int i = 0; i < vector.length; i++) {
+ vector2[i] = (float) vector[i];
+ }
+ return List.of(vector2);
+ }
+
+ @Override
+ public float[] generateArrayEmbeddingFrom(Object o, int[] dims) {
+ int[] vector = ((int[][]) o)[0];
+ float[] vector2 = new float[vector.length];
+ for (int i = 0; i < vector.length; i++) {
+ vector2[i] = (float) vector[i];
+ }
+ return vector2;
+ }
+}
diff --git a/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToArrayTest.java b/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToArrayTest.java
new file mode 100644
index 000000000..5ec14883d
--- /dev/null
+++ b/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_array/HdfFileToArrayTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.from_long.to_array;
+
+import org.junit.jupiter.api.Test;
+
+public class HdfFileToArrayTest {
+
+ @Test
+ public void testHdfFileToVector() {
+ final float[][] results = new float[][]{
+ {0.0f,1.0f,2.0f,3.0f,4.0f,5.0f,6.0f},
+ {2.0f,1.6666666f,2.4f,3.2857144f,4.2222223f,5.181818f,6.1538463f},
+ {4.0f,2.3333333f,2.8f,3.5714285f,4.4444447f,5.3636365f,6.3076925f},
+ {6.0f,3.0f,3.2f,3.857143f,4.6666665f,5.5454545f,6.4615383f}
+ };
+
+ HdfFileToVectorArray hdfFileToVector = new HdfFileToVectorArray(
+ "src/test/resources/h5ex_t_float.h5",
+ "/DS1");
+
+ float[] read;
+ for (int i = 0; i < 4; i++) {
+ read = hdfFileToVector.apply(i);
+ for (int j = 0; j < 7; j++) {
+ assert (read[j] == results[i][j]);
+ }
+ }
+ }
+}
diff --git a/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorTest.java b/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorTest.java
new file mode 100644
index 000000000..c2f4194cc
--- /dev/null
+++ b/virtdata-lib-hdf5/src/test/java/io/nosqlbench/virtdata/library/hdf5/from_long/to_list/HdfFileToVectorTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2023 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package io.nosqlbench.virtdata.library.hdf5.from_long.to_list;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+
+public class HdfFileToVectorTest {
+
+ @Test
+ public void testHdfFileToVector() {
+ final float[][] results = new float[][]{
+ {0.0f,1.0f,2.0f,3.0f,4.0f,5.0f,6.0f},
+ {2.0f,1.6666666f,2.4f,3.2857144f,4.2222223f,5.181818f,6.1538463f},
+ {4.0f,2.3333333f,2.8f,3.5714285f,4.4444447f,5.3636365f,6.3076925f},
+ {6.0f,3.0f,3.2f,3.857143f,4.6666665f,5.5454545f,6.4615383f}
+ };
+
+ HdfFileToVectorList hdfFileToVector = new HdfFileToVectorList(
+ "src/test/resources/h5ex_t_float.h5",
+ "/DS1");
+
+ List read;
+ for (int i = 0; i < 4; i++) {
+ read = hdfFileToVector.apply(i);
+ for (int j = 0; j < 7; j++) {
+ assert (read.get(j) == results[i][j]);
+ }
+ }
+ }
+}
diff --git a/virtdata-lib-hdf5/src/test/resources/h5ex_t_float.h5 b/virtdata-lib-hdf5/src/test/resources/h5ex_t_float.h5
new file mode 100644
index 000000000..9c8cb981d
Binary files /dev/null and b/virtdata-lib-hdf5/src/test/resources/h5ex_t_float.h5 differ
diff --git a/virtdata-userlibs/pom.xml b/virtdata-userlibs/pom.xml
index 09be05153..c5d144b27 100644
--- a/virtdata-userlibs/pom.xml
+++ b/virtdata-userlibs/pom.xml
@@ -66,6 +66,13 @@
virtdata-lib-curves4
${revision}
+
+
+ io.nosqlbench
+ virtdata-lib-hdf5
+ ${revision}
+
+
io.nosqlbench
docsys