feat: add multi-item ingest and Reed-Solomon parity
- Multi-item ingest: each item gets its own Unix socket, Rust processes them sequentially into a single snapshot with separate chunk lists - Reed-Solomon parity: rs(20,1) erasure coding for pack file groups, enabling single-pack-loss recovery via parity reconstruction - Repair now attempts parity-based recovery for missing pack files - 16 integration tests + 12 Rust unit tests all pass
This commit is contained in:
@@ -134,6 +134,7 @@ export interface IRepairResult {
|
||||
indexRebuilt: boolean;
|
||||
indexedChunks: number;
|
||||
staleLocksRemoved: number;
|
||||
packsRepaired: number;
|
||||
errors: string[];
|
||||
}
|
||||
|
||||
@@ -180,6 +181,13 @@ export type TContainerArchiveCommands = {
|
||||
},
|
||||
{ snapshot: ISnapshot }
|
||||
>;
|
||||
ingestMulti: ICommandDefinition<
|
||||
{
|
||||
tags?: Record<string, string>;
|
||||
items: Array<{ name: string; type: string; socketPath: string }>;
|
||||
},
|
||||
{ snapshot: ISnapshot }
|
||||
>;
|
||||
restore: ICommandDefinition<
|
||||
{
|
||||
snapshotId: string;
|
||||
|
||||
Reference in New Issue
Block a user