Description
RepinWorkerService.runOnce() (src/ipfs-pinning/repin-worker.service.ts) iterates every degraded/failed pin record and awaits pinningService.reconcile(record.cid) one at a time in a for...of loop. IpfsPinningService.reconcile() (src/ipfs-pinning/ipfs-pinning.service.ts) itself makes real network calls per provider (provider.verify(), and potentially replicate() → pinWithProvider() for topping up), so a sweep covering many simultaneously-degraded pins runs entirely serially, with total sweep time scaling linearly with the number of unhealthy pins times per-provider network latency.
Component
Backend
Difficulty
🟡 Medium
Tasks
Acceptance Criteria
Estimated Time
1 day
Description
RepinWorkerService.runOnce()(src/ipfs-pinning/repin-worker.service.ts) iterates every degraded/failed pin record andawaitspinningService.reconcile(record.cid)one at a time in afor...ofloop.IpfsPinningService.reconcile()(src/ipfs-pinning/ipfs-pinning.service.ts) itself makes real network calls per provider (provider.verify(), and potentiallyreplicate()→pinWithProvider()for topping up), so a sweep covering many simultaneously-degraded pins runs entirely serially, with total sweep time scaling linearly with the number of unhealthy pins times per-provider network latency.Component
Backend
Difficulty
🟡 Medium
Tasks
try/catcharoundreconcile) is preserved when running concurrentlyAcceptance Criteria
Estimated Time
1 day