Skip to main content

Module storage_replication_manager

Module storage_replication_manager 

Source
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, or ok_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§

ReplicaTarget
Metadata and runtime state for a single replication target node.
ReplicationLogEntry
A single audit entry written after each replication attempt.
SrmBatchResult
Summary returned by StorageReplicationManager::process_batch.
SrmReplicationConfig
Configuration for StorageReplicationManager.
SrmReplicationStats
Snapshot of accumulated statistics for the manager.
StorageReplicationManager
Production-grade storage replication manager.

Enums§

ReplicationOp
An individual replication operation waiting to be processed.
ReplicationPolicy
Controls how and when replication is performed.
SrmError
Errors that may be returned by StorageReplicationManager methods.

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§

ReplicaId
16-byte opaque identifier for a replication target.
SrmReplicaTarget
Type alias — SrmReplicaTarget is the public-facing name.
SrmReplicationOp
Type alias — SrmReplicationOp is the public-facing name.
SrmReplicationPolicy
Type alias — SrmReplicationPolicy is the public-facing name.
SrmStorageReplicationManager
Public alias — SrmStorageReplicationManager maps to StorageReplicationManager.