Skip to content

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.