gitwal
index sync
in sync — upload-pack may be served from this node
no checkpoint: a rebuild replays the whole log
cache generations
Each generation is an immutable directory. Readers lease one for the life of a git subprocess, so warm fetches run concurrently instead of queueing on the writer lock. A retired generation is deleted when its last lease drops; eviction never removes a leased one.
| generation | state | read leases | packs |
|---|---|---|---|
| gitwal.git.g1 | current | 0 | 821.6 KiB |
refs
| ref | oid | |
|---|---|---|
| refs/heads/main | d289bf3cb9d9 | HEAD |
wal entries
ref history
updates of refs/heads/main — ?ref=<name> selects another ref
| entry | update | pushed |
|---|---|---|
| 01m0hrev8t5y44tj0evpq32kkm | 000000000000 → bd1ce6c2c844 | 2026-08-21T08:54:32Z |
| 01m0ht5esyb3wgs1wcydd91krb | bd1ce6c2c844 → 183b4e10660f | 2026-08-21T09:24:22Z |
| 01m0hty6whe72edanb5yndh7y5 | 183b4e10660f → 4fbfc3af63e0 | 2026-08-21T09:37:53Z |
| 01m0hv8r0s2mmq7mhjeb7jkj53 | 4fbfc3af63e0 → 5f1217c29c80 | 2026-08-21T09:43:38Z |
| 01m0hvt2dfv0j46wfgt2p2xb15 | 5f1217c29c80 → c90791882e9b | 2026-08-21T09:53:06Z |
| 01m0hwkd0sdk038m9jaeytq8yb | c90791882e9b → 9cab43f34c31 | 2026-08-21T10:06:56Z |
| 01m0hwmt4k2vhbzr77q4qkdgpd | 9cab43f34c31 → 4d2cb2e443af | 2026-08-21T10:07:42Z |
| 01m0hz2h8z9jtq2kwdkk9zamzd | 4d2cb2e443af → 2776ddb1adc2 | 2026-08-21T10:50:09Z |
| 01m0j22sxsm6tad64w8vj86xzn | 2776ddb1adc2 → 582e52d45727 | 2026-08-21T11:42:44Z |
| 01m0j2vj1a7h0dtxc0p84p3qhw | 582e52d45727 → d289bf3cb9d9 | 2026-08-21T11:56:15Z |
fleet
Processes that have overwritten nodes/{id}.json within 90 seconds. This is the fleet, not per-repository cache presence. narwal does not query EC2, the ASG, or the ELB.
The preferred chip is rendezvous::rank for this repository. Any node still accepts a push.
desired replicas 1: a publish fans prewarm out to the top-ranked peers, and gossips the new index etag to the rest. Both are hints; S3 stays the judge of freshness.
| rank | node | hostname | listen | seen |
|---|---|---|---|---|
| 1 | i-0924f56fa051b78f3 preferred prewarm | ip-172-31-33-231.ec2.internal | 0.0.0.0:8080 | 2026-08-25T18:23:38Z |
| 2 | i-0f5937a0dcfc2dbb2 | ip-172-31-14-169.ec2.internal | 0.0.0.0:8080 | 2026-08-25T18:23:29Z |
nodes
A node appears here after it has warmed a cache for this name, and drops off once its presence record goes stale. Presence is a hint, not authority. S3 is.
| node | index | cache | index etag | seen |
|---|---|---|---|---|
| i-0924f56fa051b78f3 | in sync | 821.5 KiB | "fa12c893fb4e1acd8… | 2026-08-25T18:22:41Z |
| i-0f5937a0dcfc2dbb2 serving | in sync | 821.6 KiB | "fa12c893fb4e1acd8… | 2026-08-25T18:23:37Z |
infrastructure
| claimed | 2026-08-21T08:54:32Z |
| storage | aws s3 |
| wal bucket | gitwal-wal-20260821055107353400000002 |
| region | us-east-1 |
| public url | https://gitwal.io |
| serving node | i-0f5937a0dcfc2dbb2 |
| git procs | 32 free of 32 |
| cache eviction | idle 1800s, disk 90%/80% |
A saturated git budget refuses a transfer with a retryable busy rather than queueing it. Eviction removes a repository only when no writer holds it, no lease points at any generation, and it has been idle past the interval.
narwal does not query the EC2, autoscaling, or load balancer APIs. Instance and target health belong to the ALB and the ASG; this page reports only what the host itself can observe.
repository · json · gitwal · AGENTS.md