RFC 629: Create base log stasher and no-op sink interface
Created by: efritz
Implements a portion of RFC 629: Cold-storing older worker execution logs.
Using stalled job resetters as a code template, create a new ExecutionLogStasher
routine that periodically checks for records over a certain age with inline execution_log
values. This will necessitate additional methods in the dbworker store.
The Sink
interface should initially capture two behaviors: Write([]byte) -> fwd_address
and Hydrate(fwd_address) -> []byte
. No concrete (non-test) sinks are to be implemented in this issue.
The stasher should write each matching execution log to the configured sink, and update every matching record by setting the execution_log
column to NULL
and a new execution_log_forwarding_address
column to the forwarding address given by the sink post-write.
As we have no concrete sinks, this implementation should not (yet) be constructible by the application. However, the stasher should be well tested. We should also fully instrument the stasher and add additional groups to the monitoring dashboards.