diff --git a/src/internal/bootstrap/capture.zig b/src/internal/ingest/backfill/capture.zig similarity index 98% rename from src/internal/bootstrap/capture.zig rename to src/internal/ingest/backfill/capture.zig index eae009e..f672620 100644 --- a/src/internal/bootstrap/capture.zig +++ b/src/internal/ingest/backfill/capture.zig @@ -9,7 +9,7 @@ const std = @import("std"); const zat = @import("zat"); -const ingest = @import("../ingest/ingest.zig"); +const ingest = @import("../ingest.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/engine.zig b/src/internal/ingest/backfill/engine.zig similarity index 99% rename from src/internal/bootstrap/engine.zig rename to src/internal/ingest/backfill/engine.zig index 4a2356d..cf5ffac 100644 --- a/src/internal/bootstrap/engine.zig +++ b/src/internal/ingest/backfill/engine.zig @@ -15,16 +15,16 @@ const std = @import("std"); const zat = @import("zat"); -const archive_mod = @import("../storage/archive.zig"); -const crashpoint = @import("../runtime/crashpoint.zig"); +const archive_mod = @import("../../storage/archive.zig"); +const crashpoint = @import("../../runtime/crashpoint.zig"); const fetched_car = @import("fetched_car.zig"); const prepared_fetch = @import("prepared_fetch.zig"); -const metrics_mod = @import("../runtime/metrics.zig"); -const meta_store = @import("../storage/meta_store.zig"); -const observability = @import("../runtime/observability.zig"); +const metrics_mod = @import("../../runtime/metrics.zig"); +const meta_store = @import("../../storage/meta_store.zig"); +const observability = @import("../../runtime/observability.zig"); const repo_store = @import("repo_store.zig"); const repos = @import("repos.zig"); -const segment = @import("../storage/segment.zig"); +const segment = @import("../../storage/segment.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/fetched_car.zig b/src/internal/ingest/backfill/fetched_car.zig similarity index 100% rename from src/internal/bootstrap/fetched_car.zig rename to src/internal/ingest/backfill/fetched_car.zig diff --git a/src/internal/bootstrap/host_store.zig b/src/internal/ingest/backfill/host_store.zig similarity index 100% rename from src/internal/bootstrap/host_store.zig rename to src/internal/ingest/backfill/host_store.zig diff --git a/src/internal/bootstrap/lifecycle.zig b/src/internal/ingest/backfill/lifecycle.zig similarity index 97% rename from src/internal/bootstrap/lifecycle.zig rename to src/internal/ingest/backfill/lifecycle.zig index 37bbfd7..92e7d30 100644 --- a/src/internal/bootstrap/lifecycle.zig +++ b/src/internal/ingest/backfill/lifecycle.zig @@ -16,27 +16,27 @@ const std = @import("std"); const zat = @import("zat"); -const archive_mod = @import("../storage/archive.zig"); +const archive_mod = @import("../../storage/archive.zig"); const capture_mod = @import("capture.zig"); -const compact_pass = @import("../compact/pass.zig"); -const crashpoint = @import("../runtime/crashpoint.zig"); -const cursor_mod = @import("../ingest/cursor.zig"); +const compact_pass = @import("../../compact/pass.zig"); +const crashpoint = @import("../../runtime/crashpoint.zig"); +const cursor_mod = @import("../cursor.zig"); const engine = @import("engine.zig"); -const watermark_mod = @import("../compact/watermark.zig"); -const ingest = @import("../ingest/ingest.zig"); +const watermark_mod = @import("../../compact/watermark.zig"); +const ingest = @import("../ingest.zig"); const merge = @import("merge.zig"); -const metrics = @import("../runtime/metrics.zig"); -const meta_store = @import("../storage/meta_store.zig"); -const observability = @import("../runtime/observability.zig"); +const metrics = @import("../../runtime/metrics.zig"); +const meta_store = @import("../../storage/meta_store.zig"); +const observability = @import("../../runtime/observability.zig"); const phase_mod = @import("phase.zig"); -const pipeline_mod = @import("../ingest/pipeline.zig"); -const repair_mod = @import("../ingest/repair.zig"); +const pipeline_mod = @import("../pipeline.zig"); +const repair_mod = @import("../repair.zig"); const repo_store_mod = @import("repo_store.zig"); const repos = @import("repos.zig"); const retry_mod = @import("retry.zig"); const resync = @import("resync.zig"); -const tail_mod = @import("../serve/tail.zig"); -const verify = @import("../ingest/verify.zig"); +const tail_mod = @import("../../serve/tail.zig"); +const verify = @import("../verify.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/merge.zig b/src/internal/ingest/backfill/merge.zig similarity index 96% rename from src/internal/bootstrap/merge.zig rename to src/internal/ingest/backfill/merge.zig index e678140..cdf78f4 100644 --- a/src/internal/bootstrap/merge.zig +++ b/src/internal/ingest/backfill/merge.zig @@ -15,12 +15,12 @@ //! refreshes top-level latest Rev/UpdatedAt while preserving Backfill.Rev. const std = @import("std"); -const archive_mod = @import("../storage/archive.zig"); -const crashpoint = @import("../runtime/crashpoint.zig"); -const metrics = @import("../runtime/metrics.zig"); -const observability = @import("../runtime/observability.zig"); +const archive_mod = @import("../../storage/archive.zig"); +const crashpoint = @import("../../runtime/crashpoint.zig"); +const metrics = @import("../../runtime/metrics.zig"); +const observability = @import("../../runtime/observability.zig"); const repo_store = @import("repo_store.zig"); -const segment = @import("../storage/segment.zig"); +const segment = @import("../../storage/segment.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; @@ -270,7 +270,7 @@ test "shouldKeep mirrors upstream merge_filter" { } test "merge cursor corruption and storage errors fail closed" { - const meta_store = @import("../storage/meta_store.zig"); + const meta_store = @import("../../storage/meta_store.zig"); var tmp = testing.tmpDir(.{}); defer tmp.cleanup(); var path_buf: [std.fs.max_path_bytes]u8 = undefined; @@ -291,7 +291,7 @@ test "merge cursor corruption and storage errors fail closed" { } test "legacy bare merge cursor is migrated before strict decoding" { - const meta_store = @import("../storage/meta_store.zig"); + const meta_store = @import("../../storage/meta_store.zig"); var tmp = testing.tmpDir(.{}); defer tmp.cleanup(); var path_buf: [std.fs.max_path_bytes]u8 = undefined; @@ -309,7 +309,7 @@ test "legacy bare merge cursor is migrated before strict decoding" { } test "merge repo status cache performs one real RocksDB lookup per DID including misses" { - const meta_store = @import("../storage/meta_store.zig"); + const meta_store = @import("../../storage/meta_store.zig"); var tmp = testing.tmpDir(.{}); defer tmp.cleanup(); var path_buf: [std.fs.max_path_bytes]u8 = undefined; @@ -331,7 +331,7 @@ test "merge repo status cache performs one real RocksDB lookup per DID including } test "real merge records canonical counters at durable source boundaries" { - const meta_store = @import("../storage/meta_store.zig"); + const meta_store = @import("../../storage/meta_store.zig"); var threaded: Io.Threaded = .init(testing.allocator, .{}); defer threaded.deinit(); const io = threaded.io(); @@ -387,7 +387,7 @@ test "real merge records canonical counters at durable source boundaries" { // no later pass revisits them. Upstream enumerates sources contiguously for // the same reason. This is the merge-side twin of the cold-replay hole. test "merge refuses a gap in the source segment sequence" { - const meta_store = @import("../storage/meta_store.zig"); + const meta_store = @import("../../storage/meta_store.zig"); var threaded: Io.Threaded = .init(testing.allocator, .{}); defer threaded.deinit(); const io = threaded.io(); diff --git a/src/internal/bootstrap/phase.zig b/src/internal/ingest/backfill/phase.zig similarity index 99% rename from src/internal/bootstrap/phase.zig rename to src/internal/ingest/backfill/phase.zig index 186786f..3e81ff9 100644 --- a/src/internal/bootstrap/phase.zig +++ b/src/internal/ingest/backfill/phase.zig @@ -1,7 +1,7 @@ //! Durable lifecycle phase in the shared metadata database. const std = @import("std"); -const meta_store = @import("../storage/meta_store.zig"); +const meta_store = @import("../../storage/meta_store.zig"); const log = std.log.scoped(.stream); const key = "phase"; diff --git a/src/internal/bootstrap/prepared_fetch.zig b/src/internal/ingest/backfill/prepared_fetch.zig similarity index 99% rename from src/internal/bootstrap/prepared_fetch.zig rename to src/internal/ingest/backfill/prepared_fetch.zig index 6b9fed4..3c2b519 100644 --- a/src/internal/bootstrap/prepared_fetch.zig +++ b/src/internal/ingest/backfill/prepared_fetch.zig @@ -9,7 +9,7 @@ const std = @import("std"); const zat = @import("zat"); const fetched_car = @import("fetched_car.zig"); const repos = @import("repos.zig"); -const segment = @import("../storage/segment.zig"); +const segment = @import("../../storage/segment.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/repo_store.zig b/src/internal/ingest/backfill/repo_store.zig similarity index 99% rename from src/internal/bootstrap/repo_store.zig rename to src/internal/ingest/backfill/repo_store.zig index a8512c6..f0936c6 100644 --- a/src/internal/bootstrap/repo_store.zig +++ b/src/internal/ingest/backfill/repo_store.zig @@ -7,7 +7,7 @@ const std = @import("std"); const rocksdb = @import("rocksdb"); const host_store = @import("host_store.zig"); -const meta_store = @import("../storage/meta_store.zig"); +const meta_store = @import("../../storage/meta_store.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/repos.zig b/src/internal/ingest/backfill/repos.zig similarity index 99% rename from src/internal/bootstrap/repos.zig rename to src/internal/ingest/backfill/repos.zig index c143b38..218db56 100644 --- a/src/internal/bootstrap/repos.zig +++ b/src/internal/ingest/backfill/repos.zig @@ -16,8 +16,8 @@ const std = @import("std"); const zat = @import("zat"); -const segment = @import("../storage/segment.zig"); -const segment_writer = @import("../storage/segment_writer.zig"); +const segment = @import("../../storage/segment.zig"); +const segment_writer = @import("../../storage/segment_writer.zig"); const Allocator = std.mem.Allocator; const log = std.log.scoped(.stream); diff --git a/src/internal/bootstrap/resync.zig b/src/internal/ingest/backfill/resync.zig similarity index 98% rename from src/internal/bootstrap/resync.zig rename to src/internal/ingest/backfill/resync.zig index 85dc240..5cb65b2 100644 --- a/src/internal/bootstrap/resync.zig +++ b/src/internal/ingest/backfill/resync.zig @@ -14,14 +14,14 @@ const std = @import("std"); const zat = @import("zat"); -const archive_mod = @import("../storage/archive.zig"); -const observability = @import("../runtime/observability.zig"); +const archive_mod = @import("../../storage/archive.zig"); +const observability = @import("../../runtime/observability.zig"); const fetched_car = @import("fetched_car.zig"); const prepared_fetch = @import("prepared_fetch.zig"); const repo_store = @import("repo_store.zig"); const repos = @import("repos.zig"); -const segment = @import("../storage/segment.zig"); -const segment_writer = @import("../storage/segment_writer.zig"); +const segment = @import("../../storage/segment.zig"); +const segment_writer = @import("../../storage/segment_writer.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/bootstrap/retry.zig b/src/internal/ingest/backfill/retry.zig similarity index 99% rename from src/internal/bootstrap/retry.zig rename to src/internal/ingest/backfill/retry.zig index b69ccb9..51f7ec0 100644 --- a/src/internal/bootstrap/retry.zig +++ b/src/internal/ingest/backfill/retry.zig @@ -12,10 +12,10 @@ //! never the relay host. const std = @import("std"); -const archive_mod = @import("../storage/archive.zig"); -const metrics = @import("../runtime/metrics.zig"); -const meta_store = @import("../storage/meta_store.zig"); -const observability = @import("../runtime/observability.zig"); +const archive_mod = @import("../../storage/archive.zig"); +const metrics = @import("../../runtime/metrics.zig"); +const meta_store = @import("../../storage/meta_store.zig"); +const observability = @import("../../runtime/observability.zig"); const repo_store = @import("repo_store.zig"); const repos = @import("repos.zig"); const resync = @import("resync.zig"); diff --git a/src/internal/ingest/ingest.zig b/src/internal/ingest/ingest.zig index b4967cc..5aee49a 100644 --- a/src/internal/ingest/ingest.zig +++ b/src/internal/ingest/ingest.zig @@ -16,8 +16,8 @@ const meta_store = @import("../storage/meta_store.zig"); const observability = @import("../runtime/observability.zig"); const pipeline_mod = @import("pipeline.zig"); const repair = @import("repair.zig"); -const resync = @import("../bootstrap/resync.zig"); -const repos = @import("../bootstrap/repos.zig"); +const resync = @import("backfill/resync.zig"); +const repos = @import("backfill/repos.zig"); const tail_mod = @import("../serve/tail.zig"); const verify = @import("verify.zig"); diff --git a/src/internal/ingest/repair.zig b/src/internal/ingest/repair.zig index 66a416b..afc16b9 100644 --- a/src/internal/ingest/repair.zig +++ b/src/internal/ingest/repair.zig @@ -8,8 +8,8 @@ const std = @import("std"); const zat = @import("zat"); -const fetched_car = @import("../bootstrap/fetched_car.zig"); -const prepared_fetch = @import("../bootstrap/prepared_fetch.zig"); +const fetched_car = @import("backfill/fetched_car.zig"); +const prepared_fetch = @import("backfill/prepared_fetch.zig"); const verify = @import("verify.zig"); const metrics = @import("../runtime/metrics.zig"); const lru = @import("../storage/lru.zig"); diff --git a/src/internal/ingest/repair_integration_test.zig b/src/internal/ingest/repair_integration_test.zig index 84c70cd..0cd5d73 100644 --- a/src/internal/ingest/repair_integration_test.zig +++ b/src/internal/ingest/repair_integration_test.zig @@ -5,7 +5,7 @@ const cursor_mod = @import("cursor.zig"); const ingest = @import("ingest.zig"); const meta_store = @import("../storage/meta_store.zig"); const repair = @import("repair.zig"); -const repos = @import("../bootstrap/repos.zig"); +const repos = @import("backfill/repos.zig"); const segment = @import("../storage/segment.zig"); const tail_mod = @import("../serve/tail.zig"); const verify = @import("verify.zig"); diff --git a/src/internal/ingest/verify.zig b/src/internal/ingest/verify.zig index ecbec93..7a15f57 100644 --- a/src/internal/ingest/verify.zig +++ b/src/internal/ingest/verify.zig @@ -19,7 +19,7 @@ const zat = @import("zat"); const lru = @import("../storage/lru.zig"); const metrics = @import("../runtime/metrics.zig"); const meta_store = @import("../storage/meta_store.zig"); -const repos = @import("../bootstrap/repos.zig"); +const repos = @import("backfill/repos.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/serve/server.zig b/src/internal/serve/server.zig index c486c0d..8a2466e 100644 --- a/src/internal/serve/server.zig +++ b/src/internal/serve/server.zig @@ -21,8 +21,8 @@ const metrics = @import("../runtime/metrics.zig"); const process_metrics = @import("../runtime/process_metrics.zig"); const repo_action_limiter = @import("repo_action_limiter.zig"); const repo_export = @import("repo_export.zig"); -const repo_store = @import("../bootstrap/repo_store.zig"); -const phase_mod = @import("../bootstrap/phase.zig"); +const repo_store = @import("../ingest/backfill/repo_store.zig"); +const phase_mod = @import("../ingest/backfill/phase.zig"); const status_page = @import("status_page.zig"); const tail_mod = @import("tail.zig"); const wire = @import("wire.zig"); diff --git a/src/internal/serve/status_page.zig b/src/internal/serve/status_page.zig index 1a7e191..23919c9 100644 --- a/src/internal/serve/status_page.zig +++ b/src/internal/serve/status_page.zig @@ -8,7 +8,7 @@ const std = @import("std"); const zat = @import("zat"); const repo_export = @import("repo_export.zig"); -const repo_store = @import("../bootstrap/repo_store.zig"); +const repo_store = @import("../ingest/backfill/repo_store.zig"); const Io = std.Io; const Allocator = std.mem.Allocator; diff --git a/src/internal/serve/xrpcapi.zig b/src/internal/serve/xrpcapi.zig index 92c3340..46e1ed7 100644 --- a/src/internal/serve/xrpcapi.zig +++ b/src/internal/serve/xrpcapi.zig @@ -18,7 +18,7 @@ const import_jobs = @import("../timestamp/jobs.zig"); const http_time = @import("http_time.zig"); const metrics = @import("../runtime/metrics.zig"); const observability = @import("../runtime/observability.zig"); -const time_format = @import("../bootstrap/resync.zig"); +const time_format = @import("../ingest/backfill/resync.zig"); const zstd = @import("../storage/zstd.zig"); const Io = std.Io; diff --git a/src/main.zig b/src/main.zig index 1bac5f5..9835964 100644 --- a/src/main.zig +++ b/src/main.zig @@ -4,11 +4,11 @@ const std = @import("std"); const zat = @import("zat"); const websocket = @import("websocket"); const archive_mod = @import("internal/storage/archive.zig"); -const lifecycle = @import("internal/bootstrap/lifecycle.zig"); -const repo_store = @import("internal/bootstrap/repo_store.zig"); -const phase_mod = @import("internal/bootstrap/phase.zig"); -const retry_mod = @import("internal/bootstrap/retry.zig"); -const backfill_engine = @import("internal/bootstrap/engine.zig"); +const lifecycle = @import("internal/ingest/backfill/lifecycle.zig"); +const repo_store = @import("internal/ingest/backfill/repo_store.zig"); +const phase_mod = @import("internal/ingest/backfill/phase.zig"); +const retry_mod = @import("internal/ingest/backfill/retry.zig"); +const backfill_engine = @import("internal/ingest/backfill/engine.zig"); const crashpoint = @import("internal/runtime/crashpoint.zig"); const cursor_mod = @import("internal/ingest/cursor.zig"); const ingest = @import("internal/ingest/ingest.zig"); @@ -1023,7 +1023,7 @@ pub fn main(init: std.process.Init.Minimal) !void { // Killed getRepo downloads can leave incomplete scratch files. Bootstrap // owns backfill/, while steady repair has a separate root so a legitimate // live repair can never resurrect lifecycle state after cutover. - const fetched_car = @import("internal/bootstrap/fetched_car.zig"); + const fetched_car = @import("internal/ingest/backfill/fetched_car.zig"); var bootstrap_scratch_buf: [Io.Dir.max_path_bytes]u8 = undefined; const bootstrap_scratch = try std.fmt.bufPrint(&bootstrap_scratch_buf, "{s}/backfill/repo-scratch", .{data_dir}); try fetched_car.resetScratch(io, bootstrap_scratch); diff --git a/src/tests.zig b/src/tests.zig index 294bb98..b1df8ee 100644 --- a/src/tests.zig +++ b/src/tests.zig @@ -12,18 +12,18 @@ comptime { _ = @import("internal/storage/xxhash128.zig"); _ = @import("internal/storage/gloom.zig"); _ = @import("internal/storage/lru.zig"); - _ = @import("internal/bootstrap/phase.zig"); - _ = @import("internal/bootstrap/repo_store.zig"); - _ = @import("internal/bootstrap/repos.zig"); - _ = @import("internal/bootstrap/fetched_car.zig"); - _ = @import("internal/bootstrap/prepared_fetch.zig"); + _ = @import("internal/ingest/backfill/phase.zig"); + _ = @import("internal/ingest/backfill/repo_store.zig"); + _ = @import("internal/ingest/backfill/repos.zig"); + _ = @import("internal/ingest/backfill/fetched_car.zig"); + _ = @import("internal/ingest/backfill/prepared_fetch.zig"); // Import directly: Zig does not collect a module's test declarations when // it is reached only transitively through main.zig. - _ = @import("internal/bootstrap/engine.zig"); - _ = @import("internal/bootstrap/merge.zig"); - _ = @import("internal/bootstrap/resync.zig"); - _ = @import("internal/bootstrap/retry.zig"); - _ = @import("internal/bootstrap/lifecycle.zig"); + _ = @import("internal/ingest/backfill/engine.zig"); + _ = @import("internal/ingest/backfill/merge.zig"); + _ = @import("internal/ingest/backfill/resync.zig"); + _ = @import("internal/ingest/backfill/retry.zig"); + _ = @import("internal/ingest/backfill/lifecycle.zig"); _ = @import("internal/storage/archive.zig"); _ = @import("internal/storage/manifest.zig"); _ = @import("internal/storage/tombstone.zig"); diff --git a/src/write_sample.zig b/src/write_sample.zig index 4d12475..2affbfa 100644 --- a/src/write_sample.zig +++ b/src/write_sample.zig @@ -20,7 +20,7 @@ pub fn main(init: std.process.Init.Minimal) !void { // --parse : run the backfill CAR-to-rows conversion on a file if (std.mem.eql(u8, path, "--parse")) { const car_path = args.next() orelse return error.MissingPath; - const repos = @import("internal/bootstrap/repos.zig"); + const repos = @import("internal/ingest/backfill/repos.zig"); const seg = @import("internal/storage/segment.zig"); var arena = std.heap.ArenaAllocator.init(allocator); defer arena.deinit(); @@ -69,7 +69,7 @@ pub fn main(init: std.process.Init.Minimal) !void { if (std.mem.eql(u8, path, "--status")) { const dir = args.next() orelse return error.MissingPath; const meta_store = @import("internal/storage/meta_store.zig"); - const repo_store = @import("internal/bootstrap/repo_store.zig"); + const repo_store = @import("internal/ingest/backfill/repo_store.zig"); var meta = try meta_store.Store.open(allocator, dir); defer meta.deinit(); var store = try repo_store.Store.init(allocator, io, &meta); @@ -109,7 +109,7 @@ pub fn main(init: std.process.Init.Minimal) !void { const count = try std.fmt.parseInt(usize, args.next() orelse return error.MissingCount, 10); if (!std.mem.eql(u8, mode, "same") and !std.mem.eql(u8, mode, "unique")) return error.InvalidMode; const meta_store = @import("internal/storage/meta_store.zig"); - const repo_store = @import("internal/bootstrap/repo_store.zig"); + const repo_store = @import("internal/ingest/backfill/repo_store.zig"); var meta = try meta_store.Store.open(allocator, dir); defer meta.deinit(); var store = try repo_store.Store.init(allocator, io, &meta); @@ -143,7 +143,7 @@ pub fn main(init: std.process.Init.Minimal) !void { const min_delay_us = try std.fmt.parseInt(i64, args.next() orelse return error.MissingDelay, 10); const max_delay_us = try std.fmt.parseInt(i64, args.next() orelse return error.MissingDelay, 10); const meta_store = @import("internal/storage/meta_store.zig"); - const repo_store = @import("internal/bootstrap/repo_store.zig"); + const repo_store = @import("internal/ingest/backfill/repo_store.zig"); var meta = try meta_store.Store.open(allocator, dir); defer meta.deinit(); var store = try repo_store.Store.init(allocator, io, &meta);