Skip to content

[prototyping] Make DiskGraph explicit I/O production-ready - #169

Draft
danielmawhirter wants to merge 1 commit into
mainfrom
dm-diskgraph-424-readiness
Draft

danielmawhirter wants to merge 1 commit into
mainfrom
dm-diskgraph-424-readiness

Conversation

@danielmawhirter

@danielmawhirter danielmawhirter commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Port DiskGraph #424 from pinned source f84d30cf3b9a31884c46b3b71c19d233c80fbcc3, adding optional buffered/direct I/O, bounded caching and prefetch planning. Preserve mmap defaults and Engine's existing seeded neighborhoods by omitting the proposal's Floyd sampler replacement. Retain the reproduced cancellation, fork ownership, automatic fusion and profiler fixes.

The upstream branch contains one SSH-signed, GitHub-verified commit, c1a04a305f569cf4fc6a1284e054b9c4277f3625, directly on main 58890141ae0b7d77524ea5562039ef48c7979249. Its 80-path port retains stable patch ID 736e39971c9dba458f7c186f2fb5b363c0b60d95; rebasing preserved the native DiskGraph tree. Portable checksums, BigQuery eligibility and vendor-header prerequisites are excluded; this PR does not depend on #196, #198 or #197.

The final main refresh changed README/Databricks guidance, assets and their tests. Native and production fit/predict/sampling paths are unchanged. The newly added README equality test passed, as did its flake8/isort checks.

Verification and remaining gates

The following results were recorded for 2643ad77 on f9c5ca88, before this rebase:

  • Five affected Rust crates passed all-target checks and Clippy; 158 tests passed, with 11 existing ignored cases.
  • Ten strict native I/O/cache/error/fork cases passed. Thirteen native/Core boundary cases ran without skips; 118 Core backend-policy and three worker/pickling/options cases passed.
  • Twenty-six workflow and 16 generator tests passed; generated manifests/notices validated with 404 components. Eleven changed Python files passed flake8/isort. Actionlint passed with the custom runner label configured; full ShellCheck retained an unchanged main-branch warning.

Integration qualification against 329e2ef5 completed 83 tests at 75ca0e2f: 65 benchmark-harness checks, five temporal-link candidate cases, eight fitted-scalar/plan cases and five prediction-anchor/materialization cases. The temporal-link cases passed outside the sandbox with working DataLoader IPC. These qualify that integration checkout; they do not establish current full CI/platform qualification of this PR head.

Completed end-to-end benchmark

The benchmark report records 90 successful fresh trials at 75ca0e2fd6797827feda61d637b59b75e2d6f678: three tasks × three backends × two memory regimes × five balanced repetitions. That integration candidate shares the core I/O port with c1a04a30, adding read-only native I/O diagnostics and optional TensorTable ingest controls for matched work, plus the benchmark harness. It is not the exact PR-head binary.

Median public fit-to-first-prediction time, seconds:

Task Regime mmap Buffered Direct
Binary classification Resident 44.14 54.85 65.42
Binary classification Constrained 358.38 64.99 73.21
Regression Resident 40.44 52.00 61.48
Regression Constrained 341.25 63.35 70.36
Temporal link prediction Resident 75.28 77.55 82.89
Temporal link prediction Constrained 174.34 104.59 107.01

Measurements used CPU ARM Linux, workers 0, Torch threads 1, Rayon/native threads 4 and the standalone loader. Cgroup limits were 64GiB resident or 4GiB constrained, including children and kernel page cache, with swap disabled (MemorySwapMax=0). Native cache budgets were 16GiB resident; constrained budgets were 2GiB for classification/regression and 1GiB for link prediction. Resident means OS page cache warm and process-native cache cold. Every constrained trial demonstrated actual training physical reads and reclaim or native-cache turnover. All 90 trials preserved logical work, predictions and task layouts across backends/regimes; repeat and reload checks passed without OOMs.

Five-pair percentile-bootstrap intervals remain exploratory. Buffered's resident link-prediction E2E speedup interval 0.804–1.003× includes parity; its median alone does not establish a slowdown. Other resident regressions remain, while constrained E2E gains were approximately 1.62–5.42×. These are controlled generated-graph CPU workloads, not GPU, production-worker or full-product-default qualification.

The earlier native findings retain their recorded revision scope; rebasing preserved the core native source. Local Rust was 1.96.1, versus the repository's pinned 1.99.1. Current full CI/platform and Windows readiness remain unqualified.

Keep mmap as default. Explicit backends require verified Linux I/O support and a cache budget that accounts for every worker process. Existing indexes require rebuilding after main's earlier epserde format migration.

Physical IOPS follow-up

The instrumented IOPS report records a second 90-trial matrix, with five repetitions per configuration. It reports completed NVMe block read/write/total requests per second and completed native Read/Readv SQEs per second for training and fit through first prediction. Native mmap request counts are unavailable. All 90 trials preserved original work and predictions; all 45 constrained trials demonstrated pressure, and all 180 training/E2E read-byte totals matched both process and BIO counters.

These are instrumented observations, separate from the original untraced latency results above. Short public controls (two pairs per backend) passed their E2E overhead thresholds, while peak-rate synthetic Direct stress showed 17.5% observer overhead and retained a HOLD qualification. The report preserves both results without claiming universal low overhead. The frozen measurement source was ac7778cd; the installed native build remains 75ca0e2f, sharing the core port with this PR rather than being its exact head binary.

The portable archive passed full replay and relocated replay without historical files, DiskGraph imports, git or privileged access. All 15 raw-data corruption cases were rejected. The benchmark branch passed 156 benchmark tests, flake8/isort, 36 documentation tests, documentation/catalog checks and license checks. It remains separate from this single-commit core PR.

Historical investigation and revision scope · Maintained change map.

@copy-pr-bot

copy-pr-bot Bot commented Nov 3, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 3, 2026 18:18 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@danielmawhirter

danielmawhirter commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator Author

Change map

Current head 2643ad774756069ed6076947081f2c7ad33944c0 is one SSH-signed core-port commit directly on main f9c5ca88523e82ef2caab4ee373c019ba9c2d198. This table covers the exact 80-path diff against main. Portable checksums, BigQuery eligibility and copied-source header prerequisites are excluded; #196, #198 and #197 are not dependencies.

Preserve main’s Arrow/Parquet 60.1.0, PyO3 0.29.3, epserde 0.13.2, worker error handling, removed legacy store APIs, reusable build-only workflow and package-test sharding. Preserve the original sorted rand::seq::index::sample seeded selection; omit the proposal’s Floyd replacement. The optional Unix profiler uses patched pprof 0.14.1. Artifact manifests and the 404-component notice inventory are regenerated under the existing policy.

Fresh local checks pass: five affected crates’ all-target checks and Clippy; 158 Rust tests with 11 existing ignored cases; all ten strict native cases; all 13 fresh-wheel native/Core boundary cases with zero skips; 118 Core automatic-policy cases and three worker/pickling/options cases; 26 workflow tests; 16 generator tests and manifest/notice checks; all 11 changed Python files’ flake8/isort. Actionlint passes with repository runner labels; the unchanged SC2086 baseline at testing.yml:229 is recorded separately. Local Rust is 1.96.1, versus CI’s pinned 1.99.1. Generated upstream license indentation is preserved verbatim despite generic whitespace checking.

Fresh Testing, Public and Lint runs are pending. November 4 qualification, including 96a65382, is historical evidence for its recorded revisions, not qualification of this rebase. No current full-matrix, controlled-rollout readiness or Windows-readiness claim is made. Portable snapshot checksums are outside this candidate.

Keep mmap as default. Rebuild indexes after main’s earlier epserde format migration; validate Linux I/O capability, aggregate per-process cache budgets and representative performance before enabling explicit backends or claiming speedups.

File What changed Why
.agents/skills/build-ui/SKILL.md Use upstream main as the default base, dm-ui branches and explicit same-name upstream pushes. Honor the requested upstream development workflow and remove active origin/master advice.
.agents/skills/build-ui/references/decision-tables.md Check the selected base on upstream, with main as the default. Honor the requested upstream development workflow and remove active origin/master advice.
.github/actions/engine-gpu-smoke/action.yml Validate and export the chosen I/O backend, use a 1 GiB direct cache, and retain the backend in the real GPU task summary. Run the finished candidate wheel against explicit storage backends without changing runner or credential policy.
.github/workflows/kumo-engine-pr.yml Add a whitelisted manual backend choice with default mmap and pass it to the GPU task action. Make direct or buffered eight-task GPU validation selectable while preserving mmap, repository trust checks and main’s reusable build_only workflow.
.github/workflows/testing.yml Require strict native Linux checks, macOS installed-wheel checks, CPU24 and all 13 native Python/Core boundary cases with both opt-in flags and a no-skip guard; use main’s current action pins and Rust toolchain action. Exercise the verified candidate wheel across task and ownership/parity/seeded boundaries; deny a green result from skipped native cases.
3rdparty/notices/inventory.json Regenerate resolved Linux/Windows artifact dependencies and the 404-component notice inventory for io-uring and unified pprof 0.14.1. Account for shipped dependencies under the existing policy without retaining the affected profiler version.
THIRD-PARTY.txt Regenerate resolved Linux/Windows artifact dependencies and the 404-component notice inventory for io-uring and unified pprof 0.14.1. Account for shipped dependencies under the existing policy without retaining the affected profiler version.
packages/diskgraph/Cargo.lock Resolve io-uring 0.7.13 and benchmark dependencies alongside main’s Arrow/Parquet 60.1.0, PyO3 0.29.3 and epserde 0.13.2; unify the profiler on pprof 0.14.1. Preserve current dependency controls and avoid reintroducing the affected profiler version.
packages/diskgraph/README.md Document backend configuration, per-process native runtime and cache budgets, generator entry points and benchmark usage. Make operational settings and benchmark limits explicit before enabling native I/O.
packages/diskgraph/diskgraph-datagenerator/README.md Describe the proposed backend, generator or benchmark entry points. Connect the imported tools with their usage and evidence.
packages/diskgraph/diskgraph-datagenerator/configs/alt_detection_1pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/alt_detection_25pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/alt_detection_50pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/alt_detection_5pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/alt_detection_full_scale.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_100pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_10pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_1pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_25pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_50pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/ecommerce_features_5pct.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/pinterest_omnisage_pruned_organic.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/pinterest_omnisage_pruned_organic_graph.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/configs/pinterest_omnisage_pruned_organic_size_matched.json Carry compressed identity, ecommerce and organic Pinterest workload configuration. Retain reproducible workloads used by the source benchmarks.
packages/diskgraph/diskgraph-datagenerator/src/config.rs Add source generator distributions, feature data and compression support. Generate the complete proposed benchmark workloads.
packages/diskgraph/diskgraph-datagenerator/src/generator.rs Add source generator distributions, feature data and compression support. Generate the complete proposed benchmark workloads.
packages/diskgraph/diskgraph-engine/Cargo.toml Add benchmark dependencies and use Unix-only pprof 0.14.1, matching the patched version already used by ingest. Retain Linux/macOS profiling while removing the affected report-builder dependency and preserving Windows compilation.
packages/diskgraph/diskgraph-engine/src/bin/dg-engine-bench.rs Add the end-to-end benchmark, retaining Unix profiling through patched pprof and rejecting unsupported Windows profiling requests. Measure equivalent workloads while preserving the experimental Windows build boundary.
packages/diskgraph/diskgraph-engine/src/engine.rs Integrate explicit planning while preserving current seeded sampling and native runtime APIs; choose automatic fusion from actual shard capabilities. Retain mmap behavior and use a supported standalone path for explicit backends, including zero-hop requests.
packages/diskgraph/diskgraph-engine/src/output.rs Integrate explicit page planning and reusable sampling state; preserve current seeded selection and engine features. Expose the new backend through the existing relation, projection and per-seed commit paths.
packages/diskgraph/diskgraph-engine/src/state.rs Integrate explicit page planning and reusable sampling state; preserve current seeded selection and engine features. Expose the new backend through the existing relation, projection and per-seed commit paths.
packages/diskgraph/diskgraph-engine/src/tests_unit.rs Integrate explicit page planning and reusable sampling state; preserve current seeded selection and engine features. Expose the new backend through the existing relation, projection and per-seed commit paths.
packages/diskgraph/diskgraph-index/Cargo.toml Add io-uring 0.7.13 only for Linux targets. Preserve supported macOS and native Windows mmap builds without Linux-only dependencies.
packages/diskgraph/diskgraph-index/src/bin/dg-page-io-bench.rs Carry the page-I/O benchmark, centralize platform-specific opens, and checksum literal requested bytes in every backend. Measure equivalent work and detect byte mismatches.
packages/diskgraph/diskgraph-index/src/lib.rs Add cached explicit I/O, bounded record planning and optional mmap prefetch. Implement the proposed sampler storage path while retaining computed offset positions.
packages/diskgraph/diskgraph-index/src/page_io.rs Add explicit I/O/cache planning, consume failed reservations once and create process-owned runtime/cache state after fork. Validate backend input and reject explicit I/O on non-Linux platforms. Preserve byte correctness, prevent replacement-slot cancellation and avoid inherited locks/channels or inaccessible cache mappings.
packages/diskgraph/diskgraph-index/src/page_io_readiness_tests.rs Test exact-once cancellation and error recovery; fork while configuration or cache locks are held. Verify deterministic ownership and child initialization rather than relying on timing.
packages/diskgraph/diskgraph-index/src/prefetch.rs Add bounded prefetch, retaining Unix page advice and a non-Unix no-op. Preserve the proposed Linux optimization without introducing Unix syscall requirements on Windows.
packages/diskgraph/diskgraph-index/src/reader.rs Add explicit range/page reads and prefetch while using the shared platform-aware direct-file helper. Retain current offset semantics and reject unsupported platform operations clearly.
packages/diskgraph/diskgraph-index/tests/page_bench_checksum.rs Compare mmap, buffered and direct checksums over patterned bytes including repeated page requests. Require all benchmark backends to consume identical data.
packages/diskgraph/diskgraph-index/tests/page_io_readiness.rs Check native bytes, concurrent cancellation, I/O-error recovery, fork timing, populated cache, and inherited pending/prepared handles. Prove fresh child reads work and inherited unsafe access returns typed errors.
packages/diskgraph/diskgraph-ingest/src/lib.rs Carry the encode-budget override and buffered LZ4 output while retaining current ingestion behavior. Preserve proposal tuning and performance changes without reverting newer budget and recovery handling.
packages/diskgraph/diskgraph-pybind/python/tests/test_backend_portability.py Exercise installed-wheel default mmap ingestion/sampling, platform backend rejection, and strict backend text/invalid-UTF8 parsing. Prove supported macOS behavior and matching explicit configuration errors.
packages/diskgraph/diskgraph-pybind/python/tests/test_native_io_readiness.py Verify parent/train-table parity, projections, seeded replay, backend fusion, inherited native owners, and warmed real core DataLoader workers. Exercise actual Python/runtime/core boundaries and preserve default mmap behavior.
packages/diskgraph/diskgraph-pybind/src/runtime_batch_iterator.rs Guard native runtime-index and iterator access/drop with process ownership. Reject inherited worker handles before touching parent Rayon/channel state while preserving same-process values.
packages/diskgraph/docs/cached-direct-io-sampler.html Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/proposals/buffered-io-uring-sampler.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/proposals/direct-io-cache-sampler.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/README.md Index the imported benchmark reports and current readiness review. Keep historical performance evidence distinct from current release findings.
packages/diskgraph/docs/reports/diskgraph-all-edge-3hop-100pct-mmap-vs-direct-2026-08-07.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-all-edge-3hop-scale-matrix-2026-08-08.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-direct-cache-optimized-2026-08-07.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-ecommerce-feature-io-benchmark-2026-08-08.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-i8g-ecommerce-feature-io-benchmark-2026-08-10.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-i8g-identity-scale-matrix-2026-08-10.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-localssd-ecommerce-feature-mmap-vs-direct-2026-08-19.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-localssd-mmap-vs-direct-2026-08-18.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-pinterest-hotspot-real-pkey-2026-08-21.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-pinterest-i8g-io-benchmark-2026-08-09.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-pinterest-organic-capped-bfs-2026-08-21.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-real-pkey-e2e-mmap-vs-direct-2026-08-20.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/diskgraph-sampler-io-benchmark-2026-08-06.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/docs/reports/pr-424-production-readiness-2026-10-30.md Record observed fixes, the profiler advisory correction and inherited index-rebuild requirement; add the November 9 core-only rebase scope and distinguish historical CPU/GPU/platform qualification. Keep historical evidence distinct from the latest main integration and require fresh artifact qualification without making speedup claims.
packages/diskgraph/docs/sampling-mmap-baseline-2026-08-06.md Retain the proposal design, methodology and historical benchmark report. Carry the complete source proposal and its original evidence without claiming a fresh performance measurement.
packages/diskgraph/scripts/bench_fio_iops.sh Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/scripts/bench_fio_raw_matrix.sh Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/scripts/bench_pinterest_organic_pkey.sh Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/scripts/bench_pinterest_pruned_pkey.sh Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/scripts/bench_sampling_iops.sh Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/scripts/check_native_io.sh Run seven public native lifecycle cases, two lock-held fork cases and equal-byte benchmark separately with fixed cache/ring settings. Make native I/O capability and every named case mandatory in Linux CI without green skips.
packages/diskgraph/scripts/evict_file_cache.py Add source workload, fio and sampler benchmark helpers with file-scoped cache eviction. Reproduce the proposed measurements and retain safe, focused cache controls.
packages/diskgraph/third_party/artifact-manifest.json Regenerate resolved Linux/Windows artifact dependencies and the 404-component notice inventory for io-uring and unified pprof 0.14.1. Account for shipped dependencies under the existing policy without retaining the affected profiler version.
packages/kumo-core/src/kumo_core/diskgraph/lightning_data.py Type cached native handles and rebuild them when worker PID changes; clear ownership on serialization. Support warmed-parent DataLoader fork without inherited native runtime reuse; preserve main’s feeder-error handling and graph_schema API.
packages/kumo-core/src/kumo_core/diskgraph/stores.py Validate backend settings and select standalone automatic training mode for explicit I/O while preserving mmap sizing and worker policy. Prevent small-graph training from forcing unsupported fused execution; preserve main’s removal of legacy store APIs and make the minimal required import/spacing lint repairs.
packages/kumo-core/tests/test_diskgraph_auto_config.py Cover backend choices, exact invalid strings, edge-size thresholds and platform/start-method policies. Preserve current mmap defaults and verify explicit backend automatic policy across 118 cases.
packages/kumo-engine/test/test_native_io_tasks.py Run 24 real CPU fits with canonical entity/time inputs, finite complete predictions and own-model repeat/reload checks; compare backends using one saved model and snapshot. Cover every concrete task type through the actual Core default policy and verify full-key backend parity at absolute tolerance 1e-6.
packages/kumo-engine/test/wheel_gpu_smoke.py Record the selected edge backend and direct-cache configuration in the retained eight-task GPU summary. Associate real fit and prediction evidence with the backend requested by the trusted workflow.
test/scripts/test_engine_pr_workflow.py Verify allowed manual backend choices, the mmap default, direct-cache environment and retained summary wiring. Protect explicit backend validation while preserving existing workflow security and publication behavior.
test/train/datamodule/test_diskgraph_lightning_data.py Initialize explicit runtime handle/PID cache fields in the synthetic dataset fixture. Match the typed production dataset state used by existing DataModule regressions.
tools/migrations/diskgraph/check_native_runtime.py Add a bounded Kumo iterable, DataLoader and runtime-adapter diagnostic for each backend. Verify the actual training integration and reproduce worker failure after parent I/O.

@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 3, 2026 18:41 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 3, 2026 19:55 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 4, 2026 17:17 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter changed the base branch from main to dm-bigquery-test-eligibility November 4, 2026 17:18
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 4, 2026 17:57 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 4, 2026 18:26 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter changed the base branch from dm-bigquery-test-eligibility to dm-snapshot-checksums-portable November 4, 2026 18:43
@danielmawhirter danielmawhirter changed the title Make DiskGraph explicit I/O production-ready [prototyping] Make DiskGraph explicit I/O production-ready Nov 6, 2026
@danielmawhirter
danielmawhirter changed the base branch from dm-snapshot-checksums-portable to main November 9, 2026 19:54
@danielmawhirter
danielmawhirter force-pushed the dm-diskgraph-424-readiness branch from 96a6538 to 2643ad7 Compare November 9, 2026 19:59
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 9, 2026 19:59 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter force-pushed the dm-diskgraph-424-readiness branch from 2643ad7 to 5fd6218 Compare November 10, 2026 00:55
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 10, 2026 00:55 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter force-pushed the dm-diskgraph-424-readiness branch from 5fd6218 to c1a04a3 Compare November 10, 2026 05:38
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 10, 2026 05:38 — with GitHub Actions Inactive

This branch was previously deployed

1 inactive deployment
gha-kumo-workflow-tests — c1a04a30 Deployed Nov 10, 2026 by danielmawhirter via import #1883
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant