v0.15.5 Migration Guide
Runs-Store Schema 5 to 6
The runs-store schema moves from 5 to 6. Schema 6 adds
concurrency_holders.queue_arrived_at, which admission state uses to report
when a promoted holder originally entered the queue.
No manual SQL step is required. The store migrates automatically the first time a v0.15.5 binary opens the database. Because the migration changes the shared runs-store schema, upgrade every Sparkwing binary that points at the same state database before running mixed admission workloads.
If an older binary opens a database already migrated to schema 6, it refuses to start with a schema-skew error. Roll that binary forward to v0.15.5 or restore a schema-5 database snapshot for that binary.
Concurrency State Struct Literals
store.ConcurrencyHolder and client.WaiterHolder gained queue-arrival fields.
Callers using unkeyed literals for either exported struct must switch to keyed
literals before upgrading.
Before:
holder := store.ConcurrencyHolder{"box", "run/node", "run", "node", claimedAt, leaseExpiresAt, false, 1, 1}
After:
holder := store.ConcurrencyHolder{
Key: "box",
HolderID: "run/node",
RunID: "run",
NodeID: "node",
ClaimedAt: claimedAt,
LeaseExpiresAt: leaseExpiresAt,
Cost: 1,
DeclaredCapacity: 1,
}
For controller clients, WaiterHolder.QueueArrivedAt is nil for holders that
were admitted immediately and populated for holders promoted from a queue.