Skip to content

Commit b5874e1

Browse files
authored
Update buckets (#672)
* updating to use new bucket in jvector account * adding credentials step to workflow
1 parent a31cee1 commit b5874e1

5 files changed

Lines changed: 28 additions & 8 deletions

File tree

.github/workflows/run-bench.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ jobs:
7272
strategy:
7373
matrix: ${{ fromJSON(needs.generate-matrix.outputs.matrix) }}
7474
runs-on: ${{ matrix.isa }}
75+
permissions:
76+
id-token: write # required for OIDC token request
77+
contents: read
7578
steps:
7679
- name: verify-avx512
7780
run: |
@@ -140,6 +143,12 @@ jobs:
140143
mkdir -p jvector-examples/yaml-configs/dataset-catalogs
141144
echo "${{ secrets.PROTECTED_CATALOG_YAML }}" | base64 -d > jvector-examples/yaml-configs/dataset-catalogs/protected-catalog.yaml
142145
146+
- name: Configure AWS credentials
147+
uses: aws-actions/configure-aws-credentials@v4
148+
with:
149+
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
150+
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
151+
143152
# Create a directory to store benchmark results
144153
- name: Create results directory
145154
run: mkdir -p benchmark_results

jvector-examples/src/main/java/io/github/jbellis/jvector/example/benchmarks/datasets/DataSetLoaderSimpleMFD.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
2121
import org.yaml.snakeyaml.Yaml;
22-
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
22+
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
2323
import software.amazon.awssdk.regions.Region;
2424
import software.amazon.awssdk.services.s3.S3AsyncClient;
2525
import software.amazon.awssdk.transfer.s3.S3TransferManager;
@@ -188,6 +188,16 @@ static String redact(Object value) {
188188
String s = value.toString();
189189
if (s.isEmpty()) return s;
190190

191+
// Unescape URL-encoded path separators (%2F, %5C) before locating
192+
// the leaf filename, so S3 keys with encoded slashes are handled correctly.
193+
s = s.replace("%2F", "/").replace("%2f", "/")
194+
.replace("%5C", "\\").replace("%5c", "\\");
195+
196+
// Find the last path delimiter using lastIndexOf.
197+
// Both '/' and '\\' must be checked explicitly: path strings arrive from S3 URLs,
198+
// Linux paths, and Windows paths, so the OS-local '\\' is not enough.
199+
int lastDelim = Math.max(s.lastIndexOf('/'), s.lastIndexOf('\\'));
200+
191201
var sb = new StringBuilder(s.length());
192202
int i = 0;
193203
while (i < s.length()) {
@@ -197,7 +207,8 @@ static String redact(Object value) {
197207
i++;
198208
}
199209
String segment = s.substring(segStart, i);
200-
sb.append(looksLikeSecret(segment) ? "[[redacted]]" : segment);
210+
boolean isLeaf = segStart > lastDelim;
211+
sb.append(!isLeaf && looksLikeSecret(segment) ? "[[redacted]]" : segment);
201212

202213
// append the delimiter(s)
203214
while (i < s.length() && (s.charAt(i) == '/' || s.charAt(i) == '\\')) {
@@ -891,7 +902,7 @@ private void downloadFileS3(String s3Url, Path localPath) throws IOException {
891902
private static S3AsyncClient s3AsyncClient() {
892903
return S3AsyncClient.crtBuilder()
893904
.region(Region.US_EAST_1)
894-
.credentialsProvider(AnonymousCredentialsProvider.create())
905+
.credentialsProvider(DefaultCredentialsProvider.create())
895906
.targetThroughputInGbps(10.0)
896907
.minimumPartSizeInBytes(8L * 1024 * 1024)
897908
.build();

jvector-examples/src/test/java/io/github/jbellis/jvector/example/benchmarks/datasets/DataSetLoaderSimpleMFDTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1217,7 +1217,7 @@ public void redactHandles0xPrefix() {
12171217

12181218
@Test
12191219
public void redactPreservesNonHashPaths() {
1220-
String url = "s3://jvector-datasets-public/datasets-clean/ada_002_100k_base.fvecs";
1220+
String url = "s3://vector-datasets-20260601/public/datasets-clean/ada_002_100k_base_99287.fvecs";
12211221
assertEquals(url, DataSetLoaderSimpleMFD.redact(url), "No hash segments — should be unchanged");
12221222
}
12231223

jvector-examples/yaml-configs/dataset-catalogs/datasets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Public datasets work out of the box. `public-catalog.yaml` uses
2626

2727
```sh
2828
# see what's available
29-
curl -L https://jvector-datasets-public.s3.us-east-1.amazonaws.com/datasets-clean/catalog_entries.yaml
29+
https://vector-datasets-20260601.s3.us-east-1.amazonaws.com/public/datasets-clean/catalog_entries.yaml
3030
```
3131

3232
Downloaded files are cached locally in `dataset_cache/public/` by default.

jvector-examples/yaml-configs/dataset-catalogs/public-catalog.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Please do not modify this file.
22
#
3-
# Hint: you can see what's available in our public-catalog by running
4-
# curl -L https://jvector-datasets-public.s3.us-east-1.amazonaws.com/datasets-clean/catalog_entries.yaml
3+
# Hint: you can see what's available in our public-catalog by running# curl -L https://jvector-datasets-public.s3.us-east-1.amazonaws.com/datasets-clean/catalog_entries.yaml
4+
# curl -L https://vector-datasets-20260601.s3.us-east-1.amazonaws.com/public/datasets-clean/catalog_entries.yaml
55

66
_include:
7-
url: s3://jvector-datasets-public/datasets-clean/catalog_entries.yaml
7+
url: s3://vector-datasets-20260601/public/datasets-clean/catalog_entries.yaml
88

99
# This sets the local cache directory for the datasets.
1010
# If it is not set, the dataset will be cached under dataset_cache/

0 commit comments

Comments
 (0)