MinIO delete-marker convergence: how the Silo fork fixed the 405 replication loop
The 405 storm had three root defects in the delete-marker path. PR #162 fixed the first attempt; PR #184 fixes retries, purge status and MRF healing in the Silo fork.
The 405 storm had three root defects in the delete-marker path. PR #162 fixed the first attempt; PR #184 fixes retries, purge status and MRF healing in the Silo fork.
MinIO Community Edition has had no release since October 2025 and the repository is archived. Three CVEs will never be patched there. Here is how to assess what your cluster is actually exposed to, and where the maintained community fork fits in.
HEAD probes on delete markers answer 405 and replication counts that as success. 20M stuck versions turned the loop into 684M useless requests in 48 h.
During a MinIO replication incident three of the signals you reach for mislead you. The 405 on HeadObject is the success path, a retried 429 is invisible, and worker queue overflow logs nothing under the default priority. The counter that tracks dropped objects is incremented in four places and read in none.
Ceph 20.2.4 and 19.2.6 patch four authentication and authorization CVEs. The remediation also needs CephX key rotation, client checks, and RGW multisite planning.
Switching tile formats on a LiDAR ingestion pipeline cut output object count by roughly 25x at the same data volume, independent of compression. Here is why object count is its own cost and performance axis on object storage, and what to check before you scale a pipeline that writes many small files.
MinIO site replication has no cross-site quorum, and its replication queue exists only inside the source cluster: lose that site and the un-replicated backlog is gone and un-enumerable. Sync mode costs latency without fixing that. The precise model, the RTO/RPO table, and the DR patterns that match real SLAs.
MinIO has no NameNode. It puts the namespace on XFS as real directories and xl.meta files. On Lots of Small Files that means you can exhaust inodes while df -h still looks fine, and a flat leaf can stall PUT, LIST, scanner, and ILM together. Here is the on-disk model, the inode math, and a prefix recipe that keeps XFS inside a regime you can operate.
MinIO fixed the HDFS NameNode limit, but it has no index: it writes one xl.meta per object on every drive of the erasure set. On 5 servers of 12 NVMe, MinIO picks a 15-wide set by default, so each small object is stored 15 times over. A worked sizing that looks fine for two years and dies in days.
Two MinIO platforms, same root cause: used as a NoSQL store. Field notes on LIST IOPS, XFS directory limits, scanner & heal SLAs, the erasure-coding storage-efficiency inversion on small objects, and why Apache Cassandra (or Ceph) is the right answer on-prem in 2026.