Commit Graph
7387 Commits
Author SHA1 Message Date
Jonathan Shook 69510b3062 feat(virtdata): emit download progress while binding warm-ups fetch
Eager and background prefetches announce the plan's cost before any
bytes move, emit rate-limited progress on stderr while the download
runs — a meter, not a log event, so it shows regardless of logging
configuration — and confirm completion. Silent when there is nothing
to fetch, so local and already-warm facets add no noise.
2026-08-26 20:47:21 +00:00
Jonathan Shook 5b992e89df fix(vectordata): resolve sized profiles against the default profile
Published sized profiles name only what differs: a windowed base
override and their own neighbor facets, with no extends key. Facets a
profile does not declare — query vectors included — resolve from
'default' implicitly, matching the expanded layout the publishing
toolchain emits into catalogs. Java honored only explicit extends, so
a released dataset failed with 'Profile 100k lacks facet
query_vectors' while its own catalog showed the facet plainly.

The window: key also accepts the serializer's structured form (a list
of {min_incl, max_excl} maps) and bare counts; dropping an
unrecognized form silently would read the whole facet where a window
was declared, so it fails instead.

Verified against the real remote dataset: profile 100k resolves all
four facets, reads query vectors, and clips the base to its window.
2026-08-26 20:30:19 +00:00
Jonathan Shook 33cbde93fb test(vectordata): isolate unit tests from ambient vectordata settings
Every unit test now builds explicit VectorDataSettings with a temporary
cache directory instead of reaching VectorDataSettings.defaults(). The
defaults path deliberately refuses to auto-configure a cache when the
largest writable mount is outside the home filesystem — exactly the
shape of a GitHub runner — so any test depending on it fails there by
design. This broke the 5.25.14-release build, the first CI run to
execute these suites after they were tagged into the unit group.
2026-08-26 19:50:45 +00:00
Jonathan Shook cdf750344f docs(vectordata): add a quick remote smoke-test stub
Environment-variable catalog selection with an isolated VECTORDATA_HOME
and three stdout-driver one-liners: profile-window warm-up, a
caller-named ordinal range in the background, and demand-paged access.
2026-08-26 19:28:36 +00:00
Jonathan Shook 7b3f802135 docs(vectordata): how to test remote dataset access
Java API, expr, and inline-op examples for remote reads and for
precache/prefetch in both profile-window and caller-named ordinal-range
forms, plus the verification patterns the integration tests use.
2026-08-26 19:07:38 +00:00
Jonathan Shook 70ff9ac23d bump minor version 2026-08-26 18:45:30 +00:00
Jonathan Shook 81ccb847b4 feat(virtdata): expr functions for facets, windows, and prefetch
metadataResults, facet, windowedFacet, and variableFacet round out
facet access from expressions; prefetchPlan prices a caller-named
record window without fetching, prefetch blocks until it is resident,
and prefetchBackground returns the running handle. Unresolvable
windows are refused rather than quietly fetching the whole facet.
2026-08-26 18:36:01 +00:00
Jonathan Shook 4045517879 feat(virtdata): facet-addressed vector bindings with windows and prefetch modes
The standard mappers (BaseVectors, QueryVectors, NeighborIndices,
NeighborDistances, new MetadataResults) address facets by canonical
name, so Rust-published datasets resolve; each takes an optional record
window — clipping the reader and warming exactly those bytes — and a
prefetch mode of eager, background, or none. Facet reads any named
facet including scalars and custom facets; VariableFacet reads vvec
records, warming a window through the offset index while indices stay
absolute. A binding window composes with a profile-declared window by
shifting to absolute records for the fetch.
2026-08-26 18:36:01 +00:00
Jonathan Shook fdfbbdadf2 feat(vectordata): prefetch caller-named windows with planning, consent, and background fetch
A profile window names a range someone wants repeatedly; it is not a
fence. TestDataView gains prefetchPlan, prefetch, and
prefetchInBackground, taking a DSWindow in record coordinates for any
facet:

- per-format mapping: xvec by header stride, scalars at the element
  stride, vvec through the offset index — loaded whole, cached on the
  view's facet handle, and never rebuilt by a remote walk while
  planning; locally walked indexes persist atomically beside the data
- plans price chunk-level residency, coalesce ranges at chunk
  adjacency, and separate what was asked from what will be issued
- an unresolvable window degrades to a whole-facet fetch that
  WholeFacetFallback refuses unless the caller consents; an empty
  window is a request for the whole facet, never a degrade
- background prefetch exposes a handle with plan, counters,
  range-granular cancel, and a join that surfaces worker failures
- manifests accept the window-suffix sugar on source strings and key
  resolved facets canonically, so Rust-published dataset.yaml files
  resolve through the standard accessors

Behavior tracks vectordata-rs at 96d787722b39, per RUST_COMPATIBILITY.md.
2026-08-26 18:35:51 +00:00
Jonathan Shook b578f97855 fix(vectordata): read both IDXFOR sidecar layouts and clamp reader windows
Two layouts sit next to real data: N record starts (the vectordata-rs
walk rebuild) and N+1 entries ending in a payload-size sentinel (what
nbdatatools publishes). No record can start at the payload size, so the
reader detects the sentinel and both layouts describe N records; a
Rust-walked local dataset is no longer unreadable here. Sidecar probing
is size-directed — the width the payload calls for, first — and reader
windows parse the DSWindow grammar, apply the first interval, and clamp
both bounds to the data instead of throwing.
2026-08-26 18:35:51 +00:00
Jonathan Shook b30d1d074e feat(vectordata): chunk-range residency and range prebuffer on storage
RangeFill reports what fetching a byte range would cost at chunk
granularity — resident chunks are free, and alignment overfetch is
visible before the fetch. prebufferRange drives only the covering
chunks; CacheStats carries the transfer-chunk size so consumers can map
byte offsets to chunk ordinals; rangeCapable distinguishes sources that
cannot service partial fetches.
2026-08-26 18:35:36 +00:00
Jonathan Shook 2af9dec9cc feat(vectordata): add the canonical facet-name alias table
Ports the StandardFacet canonical/alias table: base_vectors and kin are
the dataset.yaml keys, with base, train, query, gt, ground_truth, the
metadata shorthands, and the prefiltered/postfiltered families accepted
as aliases. The test pins the whole table so drift from the reference
is a deliberate change, not an accident.
2026-08-26 18:35:36 +00:00
Jonathan Shook e0e9cdeae0 feat(vectordata): port the DSWindow record-window grammar
The canonical window spelling from the vectordata-rs dataset-source
parser: half-open intervals, open ends, bracket bound adjustment,
count/size suffixes with compound forms, and comma-separated interval
lists. Intervals that select no records are rejected at parse, naming
the comma-for-'..' mistake.
2026-08-26 18:35:36 +00:00
Jonathan Shook 625941cd42 test(vectordata): tag unit suites for the CI groups filter
Surefire runs only tests tagged 'unit' (nb.junit.tags), so the module's
untagged suites were invisible to 'mvn -B test' in CI. Tag every unit
test class; the *IntegrationTest suites already run under failsafe.
2026-08-26 18:35:23 +00:00
J S 4fbe0d57ff Merge pull request #2299 from nosqlbench/rehome_vectordata
Rehome vectordata
5.25.13-preview 5.25.13-release
2026-08-24 17:47:31 -05:00
J S 8530674e76 Merge branch 'main' into rehome_vectordata 2026-08-24 16:55:51 -05:00
Jonathan Shook eff569c74d fix(virtdata): isolate vectordata mapper cache settings 2026-08-24 21:32:55 +00:00
Jonathan Shook 45c8a3ca56 chore(vectordata): remove stale planning and fixture provenance 2026-08-24 21:25:30 +00:00
Jonathan Shook 2591c75d41 docs(vectordata): reconcile porting plan status 2026-08-24 20:32:05 +00:00
Jonathan Shook 9ce73b9069 refactor(virtdata): migrate vector readers to nb-vectordata 2026-08-24 20:12:56 +00:00
J S f0a3315226 Merge pull request #2298 from stonewhitener/sched_rebase
Fix metrics scheduler lifecycle across rebases
2026-08-24 15:12:37 -05:00
Jonathan Shook cbff0ee9f5 feat(vectordata): add Rust-compatible Java dataset access 2026-08-24 20:11:47 +00:00
Youki Shiraishi 654574784c Fix metrics scheduler lifecycle across rebases 2026-08-21 16:50:06 +09:00
J S 4a5e567718 Merge pull request #2292 from nosqlbench/dependabot/maven/nb-adapters/adapter-aws-opensearch/org.apache.httpcomponents.client5-httpclient5-5.6.3
build(deps): bump org.apache.httpcomponents.client5:httpclient5 from 5.2.1 to 5.6.3 in /nb-adapters/adapter-aws-opensearch
2026-08-20 16:12:02 -05:00
J S 7f1017f5a5 Merge branch 'main' into dependabot/maven/nb-adapters/adapter-aws-opensearch/org.apache.httpcomponents.client5-httpclient5-5.6.3 2026-08-20 16:11:40 -05:00
J S 6bc872bb05 Merge pull request #2293 from nosqlbench/dependabot/maven/nb-apis/nb-mql-api/org.apache.logging.log4j-log4j-api-2.25.5
build(deps): bump org.apache.logging.log4j:log4j-api from 2.25.2 to 2.25.5 in /nb-apis/nb-mql-api
2026-08-20 16:11:12 -05:00
J S c7d9d87f31 Merge branch 'main' into dependabot/maven/nb-apis/nb-mql-api/org.apache.logging.log4j-log4j-api-2.25.5 2026-08-20 16:11:00 -05:00
J S 5aa04a7294 Merge pull request #2296 from nosqlbench/dependabot/maven/nb-adapters/adapter-amqp/com.rabbitmq-amqp-client-5.33.1
build(deps): bump com.rabbitmq:amqp-client from 5.18.0 to 5.33.1 in /nb-adapters/adapter-amqp
2026-08-20 16:10:32 -05:00
J S 43644643b9 Merge branch 'main' into dependabot/maven/nb-adapters/adapter-amqp/com.rabbitmq-amqp-client-5.33.1 2026-08-20 15:27:32 -05:00
J S fa32acbf7f Merge pull request #2297 from stonewhitener/terminate
Flush pending metric snapshots at activity completion
2026-08-20 20:27:15 +00:00
J S 62a943dd86 Merge branch 'main' into terminate 2026-08-20 15:26:37 -05:00
Jonathan Shook da28736815 version update for dependencies 2026-08-20 20:26:15 +00:00
J S 449b0ef9c1 Merge pull request #2288 from nosqlbench/dependabot/github_actions/softprops/action-gh-release-3.0.2
build(deps): bump softprops/action-gh-release from 3.0.1 to 3.0.2
2026-08-20 15:22:32 -05:00
J S 7c2c210216 Merge branch 'main' into dependabot/github_actions/softprops/action-gh-release-3.0.2 2026-08-20 14:40:58 -05:00
J S 3873d542b4 Merge pull request #2294 from nosqlbench/dependabot/maven/mvn-defaults/org.apache.logging.log4j-log4j-api-2.25.5
build(deps): bump org.apache.logging.log4j:log4j-api from 2.25.3 to 2.25.5 in /mvn-defaults
2026-08-20 14:40:42 -05:00
J S 951418211d Merge branch 'main' into dependabot/maven/mvn-defaults/org.apache.logging.log4j-log4j-api-2.25.5 2026-08-20 14:15:43 -05:00
J S ad7d4f89f6 Merge pull request #2287 from nosqlbench/dependabot/github_actions/actions/setup-java-5.6.0
build(deps): bump actions/setup-java from 5 to 5.6.0
2026-08-20 14:07:04 -05:00
J S 3a19573738 Merge branch 'main' into dependabot/github_actions/actions/setup-java-5.6.0 2026-08-20 12:54:37 -05:00
Youki Shiraishi ecf34b56b2 Flush pending metric snapshots at activity completion 2026-08-19 17:32:22 +09:00
dependabot[bot] d8608d1184 build(deps): bump com.rabbitmq:amqp-client in /nb-adapters/adapter-amqp
Bumps [com.rabbitmq:amqp-client](https://github.com/rabbitmq/rabbitmq-java-client) from 5.18.0 to 5.33.1.
- [Release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases)
- [Commits](https://github.com/rabbitmq/rabbitmq-java-client/compare/v5.18.0...v5.33.1)

---
updated-dependencies:
- dependency-name: com.rabbitmq:amqp-client
  dependency-version: 5.33.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-18 16:37:14 +00:00
J S b1560f63ed Merge pull request #2295 from nosqlbench/all-contributors/add-stonewhitener
docs: add stonewhitener as a contributor for design, test, and ideas
2026-08-13 15:37:48 -05:00
allcontributors[bot] 0cb483d1e6 docs: update .all-contributorsrc [skip ci] 2026-08-13 20:37:28 +00:00
allcontributors[bot] 90d749f4bd docs: update CONTRIBUTING.md [skip ci] 2026-08-13 20:37:27 +00:00
J S e964a72da6 Merge pull request #2290 from stonewhitener/fast_zipf
Fast Zipf sampler implementation based on Pareto distribution
2026-08-13 20:34:43 +00:00
J S 6a049f4680 Merge pull request #2291 from stonewhitener/timezone
Fix timezone-sensitive NBEnvironment test
2026-08-13 20:32:52 +00:00
dependabot[bot] a730367cbf build(deps): bump org.apache.logging.log4j:log4j-api in /mvn-defaults
Bumps org.apache.logging.log4j:log4j-api from 2.25.3 to 2.25.5.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-version: 2.25.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-13 19:47:58 +00:00
dependabot[bot] 743197ad3c build(deps): bump org.apache.logging.log4j:log4j-api
Bumps org.apache.logging.log4j:log4j-api from 2.25.2 to 2.25.5.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-version: 2.25.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-13 19:47:04 +00:00
dependabot[bot] ef75078d25 build(deps): bump org.apache.httpcomponents.client5:httpclient5
Bumps [org.apache.httpcomponents.client5:httpclient5](https://github.com/apache/httpcomponents-client) from 5.2.1 to 5.6.3.
- [Changelog](https://github.com/apache/httpcomponents-client/blob/rel/v5.6.3/RELEASE_NOTES.txt)
- [Commits](https://github.com/apache/httpcomponents-client/compare/rel/v5.2.1...rel/v5.6.3)

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents.client5:httpclient5
  dependency-version: 5.6.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-13 18:45:00 +00:00
Youki Shiraishi 72e57b3508 Fix timezone-sensitive NBEnvironment test 2026-08-13 16:09:37 +09:00
Youki Shiraishi 7d65cdd526 Make more accurate 2026-08-12 19:12:11 +09:00