Document sync_interval for deb/alpine and test interval changes
- add sync_interval to the github_deb/github_alpine docs and the caching field table - apply the created_at slot gate only when no sync state row exists - test 0<->N interval changes, the insert-only gate and a negative sync_interval on update
This commit is contained in:
@@ -37,9 +37,9 @@ derived metadata current off the client request path:
|
||||
stable per-remote offset, so remotes on the same interval spread out instead
|
||||
of syncing together; its first scheduled sync waits for that slot (a
|
||||
cold-cache request still primes at once). Unset, it re-checks no more often
|
||||
than its `mutable_ttl`. New/changed
|
||||
assets are derived incrementally; assets already cached are never re-fetched,
|
||||
and assets that disappear upstream are pruned.
|
||||
than its `mutable_ttl`. New/changed assets are derived incrementally; assets
|
||||
already cached are never re-fetched, and assets that disappear upstream are
|
||||
pruned.
|
||||
- **ETag / 304 conditional requests.** The releases-list `ETag` is stored per
|
||||
remote and sent as `If-None-Match`; a `304 Not Modified` means nothing changed
|
||||
and the syncer derives nothing. GitHub does not count `304` conditional
|
||||
@@ -54,8 +54,8 @@ derived metadata current off the client request path:
|
||||
periodic scan a replica must atomically claim a per-remote lease
|
||||
(`github_rpm_sync_state`: `last_synced_at`, `etag`, `sync_lease_owner`,
|
||||
`sync_lease_expires`); only the winner scans. This bounds total GitHub load to
|
||||
~once per `sync_interval` (else `mutable_ttl`) regardless of replica count, and the shared `etag`
|
||||
lets any replica issue the conditional request.
|
||||
~once per `sync_interval` (else `mutable_ttl`) regardless of replica count,
|
||||
and the shared `etag` lets any replica issue the conditional request.
|
||||
|
||||
```hcl
|
||||
# Backend that serves the actual .rpm bytes from github.com.
|
||||
|
||||
Reference in New Issue
Block a user