(Posted by Claude Code)
When the mirror queue contains multiple MirrorFileAction messages for files with the same digest but different UUIDs, each one starts a separate multipart upload for the same file object. Because the FIFO group serializes message handling but not upload lifecycles, all uploads progress roughly in lockstep — each handler invocation uploads one part and yields the next MirrorPartAction. As a result, all uploads finish at roughly the same time, wasting bandwidth and Lambda execution time on redundant downloads and uploads.
The per-part _info_exists check added in #8142 helps when there is a significant time gap between the duplicate actions, but does not help in the common case where the actions are clustered together in the queue.
(Posted by Claude Code)
When the mirror queue contains multiple
MirrorFileActionmessages for files with the same digest but different UUIDs, each one starts a separate multipart upload for the same file object. Because the FIFO group serializes message handling but not upload lifecycles, all uploads progress roughly in lockstep — each handler invocation uploads one part and yields the nextMirrorPartAction. As a result, all uploads finish at roughly the same time, wasting bandwidth and Lambda execution time on redundant downloads and uploads.The per-part
_info_existscheck added in #8142 helps when there is a significant time gap between the duplicate actions, but does not help in the common case where the actions are clustered together in the queue.