Expand description
StorageReplicationManager — production-grade replication orchestration for IPFS blocks.
Maintains a registry of ReplicaTarget nodes (identified by 16-byte ReplicaIds),
a bounded pending-operations queue (ReplicationOp), a rolling replication log,
and a configurable ReplicationPolicy.
§Design highlights
- Zero external PRNG dependency — success/failure simulation uses an inline xorshift64 seeded from a deterministic function of each operation’s content-id.
- No
unwrap()— every fallible path uses?,if let, orok_or. - Bounded memory — operation queue capped at 10 000; log capped at 500 entries.
§Quick-start
use ipfrs_storage::storage_replication_manager::{
StorageReplicationManager, ReplicaTarget, SrmReplicationConfig, ReplicationPolicy,
};
let cfg = SrmReplicationConfig {
policy: ReplicationPolicy::Asynchronous,
min_replicas: 2,
max_replicas: 5,
retry_limit: 3,
batch_size: 32,
};
let mut mgr = StorageReplicationManager::new(cfg);
let id = [1u8; 16];
mgr.add_replica(ReplicaTarget {
id,
endpoint: "10.0.0.1:4001".into(),
priority: 10,
is_healthy: true,
last_sync_ts: 0,
bytes_replicated: 0,
}).unwrap();
let cid = [0xABu8; 32];
mgr.enqueue_put(cid, 4096);
let result = mgr.process_batch();
println!("successes: {}", result.success_count);Structs§
- Replica
Target - Metadata and runtime state for a single replication target node.
- Replication
LogEntry - A single audit entry written after each replication attempt.
- SrmBatch
Result - Summary returned by
StorageReplicationManager::process_batch. - SrmReplication
Config - Configuration for
StorageReplicationManager. - SrmReplication
Stats - Snapshot of accumulated statistics for the manager.
- Storage
Replication Manager - Production-grade storage replication manager.
Enums§
- Replication
Op - An individual replication operation waiting to be processed.
- Replication
Policy - Controls how and when replication is performed.
- SrmError
- Errors that may be returned by
StorageReplicationManagermethods.
Constants§
- MAX_
LOG_ ENTRIES - Maximum number of entries retained in the replication log.
- MAX_
PENDING_ OPS - Maximum number of pending
ReplicationOps in the queue.
Functions§
- fnv1a_
64 - FNV-1a 64-bit hash.
- xorshift64
- Xorshift64 PRNG — no external dependencies, deterministic.
Type Aliases§
- Replica
Id - 16-byte opaque identifier for a replication target.
- SrmReplica
Target - Type alias —
SrmReplicaTargetis the public-facing name. - SrmReplication
Op - Type alias —
SrmReplicationOpis the public-facing name. - SrmReplication
Policy - Type alias —
SrmReplicationPolicyis the public-facing name. - SrmStorage
Replication Manager - Public alias —
SrmStorageReplicationManagermaps toStorageReplicationManager.