Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
10e1756
virtualize DataSet
jshook Aug 20, 2025
36ab6de
wrap DataSet
jshook Aug 20, 2025
9bd9e54
virtualize loader
jshook Aug 20, 2025
6709cc5
testrig
jshook Aug 20, 2025
0d43398
syntax updates
jshook Aug 20, 2025
6840b70
use catalog
jshook Aug 20, 2025
7464507
git ignore .claude and .junie
jshook Aug 20, 2025
00d946d
small fixes
jshook Aug 20, 2025
1e8ce76
command refinements
jshook Aug 20, 2025
384f4f2
add a section for streamable datasets
jshook Aug 20, 2025
21c95d4
pq ranging bugfix and refactoring
jshook Aug 21, 2025
c2384ad
demo fix
jshook Aug 21, 2025
ed44160
add progress indicator
jshook Aug 25, 2025
d1e1923
update vectordata module version
jshook Aug 28, 2025
519379d
enable diagnostics to fix GHA build
jshook Aug 28, 2025
a4cf3fa
add license to testrig
jshook Sep 2, 2025
5a632be
make examples J11 compliant, use J11 upstream bytecode
jshook Sep 4, 2025
45eb795
remove vestigial class from partial ranging fix
jshook Sep 4, 2025
17c65be
update to J11 upstream dep
jshook Sep 4, 2025
a8c2bfe
exclude local files and add licenses
jshook Sep 4, 2025
6aafe06
realigning to main
Oct 9, 2025
b5746ad
fix logback inclusion and exclude inactive module target dirs from rat
Oct 9, 2025
11ce260
bench refactorings phase 1
Oct 10, 2025
94f7510
gha workflow update for run-bench.yml
Oct 10, 2025
731769d
BenchFrame consolidation, javadoc updates
Oct 10, 2025
8a714f5
remove stale testing classes
Oct 10, 2025
88396e3
add missing license header
Oct 10, 2025
393dc2c
add missing method
Oct 13, 2025
8462bd3
optionally download dataset
Oct 13, 2025
190b6e0
Merge branch 'main' into jshook/streamer-07
jshook Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/run-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ jobs:
env:
DATASET_HASH: ${{ secrets.DATASETS_KEYPATH }}
run: |
# Check if jvector-examples directory and AutoBenchYAML class exist
# Check if jvector-examples directory exists
if [ ! -d "jvector-examples" ]; then
echo "Warning: jvector-examples directory not found in branch ${{ matrix.branch }}. Skipping benchmark."
exit 0
Expand Down Expand Up @@ -201,12 +201,12 @@ jobs:
java ${{ matrix.jdk >= 20 && '--enable-native-access=ALL-UNNAMED --add-modules=jdk.incubator.vector' || '' }} \
${{ matrix.jdk >= 22 && '-Djvector.experimental.enable_native_vectorization=true' || '' }} \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap_dump/ -Xmx${HALF_MEM_GB}g \
-cp jvector-examples/target/jvector-examples-*-jar-with-dependencies.jar io.github.jbellis.jvector.example.AutoBenchYAML --output ${SAFE_BRANCH}-bench-results ${CONFIG_ARG} dpr-1M
-cp jvector-examples/target/jvector-examples-*-jar-with-dependencies.jar io.github.jbellis.jvector.benchframe.BenchFrameCLI autobenchyaml --output ${SAFE_BRANCH}-bench-results dpr-1M
else
java ${{ matrix.jdk >= 20 && '--enable-native-access=ALL-UNNAMED --add-modules=jdk.incubator.vector' || '' }} \
${{ matrix.jdk >= 22 && '-Djvector.experimental.enable_native_vectorization=true' || '' }} \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heap_dump/ -Xmx${HALF_MEM_GB}g \
-cp jvector-examples/target/jvector-examples-*-jar-with-dependencies.jar io.github.jbellis.jvector.example.AutoBenchYAML --output ${SAFE_BRANCH}-bench-results ${CONFIG_ARG}${BENCH_SUFFIX:+ }${BENCH_ARG}
-cp jvector-examples/target/jvector-examples-*-jar-with-dependencies.jar io.github.jbellis.jvector.benchframe.BenchFrameCLI autobenchyaml --output ${SAFE_BRANCH}-bench-results${BENCH_SUFFIX:+ }${BENCH_ARG}
fi

# Move the results to the benchmark_results directory
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/unit-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,21 +59,21 @@ jobs:
- name: Test Panama Support (JDK ${{ matrix.jdk }})
if: matrix.jdk == '20'
run: >-
mvn -B -Pjdk20 -pl jvector-tests test -am test
mvn -X -B -Pjdk20 -pl jvector-tests test -am test
-DTest_RequireSpecificVectorizationProvider=PanamaVectorizationProvider

- name: Verify native-access vector support (JDK ${{ matrix.jdk }})
if: matrix.jdk == '24'
run: >-
mvn -B -Punix-amd64-profile -pl jvector-tests -am test
mvn -X -B -Punix-amd64-profile -pl jvector-tests -am test
-DTest_RequireSpecificVectorizationProvider=NativeVectorizationProvider
-Dsurefire.failIfNoSpecifiedTests=false
-Dtest=TestVectorizationProvider

- name: Compile, run tests and package (JDK ${{ matrix.jdk }})
if: matrix.jdk == '24'
run: >-
mvn -B -Punix-amd64-profile -pl jvector-tests -am test
mvn -X -B -Punix-amd64-profile -pl jvector-tests -am test
-DTest_RequireSpecificVectorizationProvider=NativeVectorizationProvider

- name: Test Summary for (ISA:${{ matrix.isa}},JDK${{ matrix.jdk }})
Expand Down
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,16 @@ hdf5/
### aider
.aider*

### claude
.claude/**

### junie
.junie/**

# JMH generated files
dependency-reduced-pom.xml
results.csv

# Local testing files
local/**

15 changes: 15 additions & 0 deletions benchmarks-jmh/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,21 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalJOptions>
<additionalJOption>--add-modules=jdk.incubator.vector</additionalJOption>
</additionalJOptions>
<release>22</release>
<detectOfflineLinks>false</detectOfflineLinks>
<includeDependencySources>true</includeDependencySources>
<dependencySourceIncludes>
<dependencySourceInclude>io.github.jbellis:*</dependencySourceInclude>
</dependencySourceIncludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,13 @@
import io.github.jbellis.jvector.quantization.PQVectors;
import io.github.jbellis.jvector.quantization.ProductQuantization;
import io.github.jbellis.jvector.vector.VectorSimilarityFunction;
import io.github.jbellis.jvector.vector.VectorUtil;
import io.github.jbellis.jvector.vector.VectorizationProvider;
import io.github.jbellis.jvector.vector.types.ByteSequence;
import io.github.jbellis.jvector.vector.types.VectorFloat;
import io.github.jbellis.jvector.vector.types.VectorTypeSupport;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.ArrayList;
Expand All @@ -49,7 +47,7 @@
@Measurement(iterations = 3)
@Threads(1)
public class PQDistanceCalculationBenchmark {
private static final Logger log = LoggerFactory.getLogger(PQDistanceCalculationBenchmark.class);
private static final Logger log = LogManager.getLogger(PQDistanceCalculationBenchmark.class);
private static final VectorTypeSupport VECTOR_TYPE_SUPPORT = VectorizationProvider.getInstance().getVectorTypeSupport();
private final VectorSimilarityFunction vsf = VectorSimilarityFunction.EUCLIDEAN;

Expand Down
92 changes: 53 additions & 39 deletions jvector-examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
<name>JVector Examples</name>
<properties>
<awssdk.version>2.21.10</awssdk.version>
<datatools.version>0.1.10</datatools.version>
</properties>

<build>
<plugins>
<plugin>
Expand All @@ -27,27 +29,45 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>io.github.jbellis.jvector.example.AutoBenchYAML</mainClass>
</manifest>
</archive>
</configuration>
<version>3.7.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>io.github.jbellis.jvector.benchframe.BenchFrameCLI</mainClass>
</manifest>
</archive>
<descriptorRefs>
<!-- <ref>assembly.xml</ref>-->
<descriptorRef>jar-with-dependencies</descriptorRef>
<!-- <descriptorRef>assembly</descriptorRef>-->
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<additionalJOptions>
<additionalJOption>--add-modules=jdk.incubator.vector</additionalJOption>
</additionalJOptions>
<release>22</release>
<detectOfflineLinks>false</detectOfflineLinks>
<includeDependencySources>true</includeDependencySources>
<dependencySourceIncludes>
<dependencySourceInclude>io.github.jbellis:*</dependencySourceInclude>
</dependencySourceIncludes>
</configuration>
</plugin>

</plugins>
</build>
<dependencies>
Expand All @@ -72,17 +92,6 @@
</exclusion>
</exclusions>
</dependency>
<!-- Add SLF4J and Logback for logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.11</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
Expand Down Expand Up @@ -115,38 +124,40 @@
</exclusions>
</dependency>
<dependency>
<groupId>com.kohlschutter.junixsocket</groupId>
<artifactId>junixsocket-core</artifactId>
<version>2.8.1</version>
<type>pom</type>
<groupId>io.nosqlbench</groupId>
<artifactId>datatools-vectordata</artifactId>
<version>${datatools.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.1</version>
<groupId>io.nosqlbench</groupId>
<artifactId>datatools-nbvectors</artifactId>
<version>${datatools.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>4.7.6</version>
</dependency>

<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
<groupId>com.kohlschutter.junixsocket</groupId>
<artifactId>junixsocket-core</artifactId>
<version>2.8.1</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.11.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>jdk11</id>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
Expand Down Expand Up @@ -273,6 +284,9 @@
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.target>22</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>io.github.jbellis</groupId>
Expand Down
Loading
Loading