You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update execution server to allow storing metadata in Redis (#9357)
Introduces 3 flags to the execution server:
- `remote_execution.write_execution_progress_state_to_redis`: if
enabled, writes execution updates and invocation-execution links to
Redis, using the new methods added in
9b6419d
- `remote_execution.write_executions_to_primary_db`: if enabled, writes
Execution rows and InvocationExecution rows to mysql. Defaults to true
in order to preserve our current behavior.
- `remote_execution.read_final_execution_state_from_redis`: if enabled,
read the final execution state from redis instead of mysql when we write
executions to clickhouse.
The rollout plan to fully stop writing executions to MySQL would then
be:
- Rollout 1: enable
`remote_execution.write_execution_progress_state_to_redis`
- Rollout 2: enable
`remote_execution.read_final_execution_state_from_redis`
- Rollout 3: disable `remote_execution.write_executions_to_primary_db`
This PR only affects the execution server; the UI endpoint
(execution_service) also needs to be updated to read the in-progress
execution state from redis, which will be done in a separate PR.
enableRedisAvailabilityMonitoring=flag.Bool("remote_execution.enable_redis_availability_monitoring", false, "If enabled, the execution server will detect if Redis has lost state and will ask Bazel to retry executions.")
80
80
sharedExecutorPoolTeeRate=flag.Float64("remote_execution.shared_executor_pool_tee_rate", 0, "If non-zero, work for the default shared executor pool will be teed to a separate experiment pool at this rate.", flag.Internal)
81
+
82
+
writeExecutionProgressStateToRedis=flag.Bool("remote_execution.write_execution_progress_state_to_redis", false, "If enabled, write initial execution metadata and progress updates (stage changes) to redis. This state is cleared when the execution is complete.", flag.Internal)
83
+
writeExecutionsToPrimaryDB=flag.Bool("remote_execution.write_executions_to_primary_db", true, "If enabled, write executions and invocation-execution links to the primary DB.", flag.Internal)
84
+
readFinalExecutionStateFromRedis=flag.Bool("remote_execution.read_final_execution_state_from_redis", false, "If enabled, read execution metadata and progress state from redis when writing executions to ClickHouse, instead of from the primary DB.", flag.Internal)
0 commit comments