Document the repodata fingerprint invariant (#178)
ci/woodpecker/tag/docker Pipeline was successful
ci/woodpecker/tag/docker Pipeline was successful
The cache_repodata fingerprint (count, max id) only detects every change while one writer at a time touches a remote's rows; with interleaved writers a late-committing lower id plus a delete can leave it unchanged. In the deployed server, github_rpm scans run under the per-remote sync lease, which holds only while the lease outlives the scan timeout. - note the invariant on RPMMetadataFingerprint, scoped to github_rpm remotes - state it in the Repodata cache section of the github_rpm docs - add a test asserting syncLeaseDuration > defaultScanTimeout Reviewed-on: #178 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
This commit was merged in pull request #178.
This commit is contained in:
@@ -92,4 +92,6 @@ Repodata is regenerated from the metadata rows on every request by default. Set
|
||||
`cache_repodata = true` on the remote to keep the generated `repomd.xml` and its
|
||||
`primary`/`filelists`/`other` files in memory per replica. Each request checks a
|
||||
cheap row fingerprint (count + newest id) in the database and rebuilds only when
|
||||
it moved, so every replica picks up a scan's changes on its next request.
|
||||
it moved, so every replica picks up a scan's changes on its next request. The
|
||||
fingerprint relies on only one scan writing a remote's rows at a time; in the
|
||||
deployed server, the sync lease serialises scans across replicas.
|
||||
|
||||
Reference in New Issue
Block a user