Changes touching this path

  • a push no longer fails past what the Postgres lock table holds, and the puts beside each other earn their deadline together: burned_under_lock took one advisory lock per published key of an ingest, and on a throwaway Postgres 18 at its defaults 13,000 such locks in one transaction were granted and 15,000 refused with out of shared memory, so a push of that many keys failed on every retry (live since uzkouqqx, on forge deploy.8); every address now maps onto one of pg::meta::BURN_LOCKS, 64, under a class of its own in the upper key bits, and record_burn takes the one its address maps to. each put of a stow or ingest earns its S3 deadline from the bytes of all the puts beside it, BlobStore::put_sharing over the new loot_s3 S3Client::put_sharing and handed on by the blob cache, where up to 64 puts shared the link with deadlines each earned by its own body. also built from xyqwqnnv: prepare owes the delete of a burned address it put back again, owe_burn_deletes, before its own delete, so a failed delete there no longer strands bytes the burn job had recorded deleted; the burn job warns once a run with a count, and the server log names a failed record as well as a failed read; the loot burn forge lines say the forge deletes its copy of the bytes when it honors the purge, and that the backups retain the rows naming the object rather than a copy; ADR 0046 section 2 no longer says forge-restore.js prints the re-delete as a step for the operator. the put_cost width is asserted from a hold the stand-in tier keeps until the bound is in flight, not from the clock, and the rounds assertion is gone; the CONTEXT.md Forge phase timing entry says the transaction writes the object rows again; the tree.ts collation comment is rewrapped. pinned: a_push_with_more_keys_than_the_lock_table_holds_commits over 25,600 keys on Postgres 18, each_put_earns_its_deadline_from_the_bytes_sharing_its_link, a_put_sharing_its_link_is_held_to_the_deadline_the_shared_bytes_earn, a_put_hands_the_tier_the_bytes_sharing_its_link, bytes_put_back_after_the_job_ran_are_owed_again over memory and Postgres, the conformance case a_recorded_burn_delete_can_be_owed_again, and a_run_warns_once_however_many_deletes_fail. red under named mutations, each restored: a lock per address (1 failed and 1 passed, out of shared memory), put_blobs calling put (1 and 24), the cache not handing sharing on (1 and 24), the S3 client ignoring sharing (1 and 19), half the put width (1 and 4), one past it (1 and 4), prepare not owing the delete again (2 and 2, over memory and Postgres), a Postgres owe that deletes nothing (2 and 2), a memory owe that removes nothing (2 and 2), a warning per failed address (1 and 15), and the old media copy wording (1 and 32). cargo test green, 4872 passed over 145 test result lines with 15 ignored, the loot-forge suite green against a throwaway Postgres 18 at 739 passed, and the site gate green at 915 passed. it also carries a comment on wosupkwz. owes a forge deploy and no migration; the burn line rides the next release (qptwwkqx) 7daffdfd · dbf3dbe6…

Renames are not followed. loot's tree maps a path to an address, so a rename is a delete and an add. This list is the history of the name, not of the bytes.