Andrés Beck-Ruiz created CASSSIDECAR-378:
--------------------------------------------
Summary: Add support for creation and coordination of local
Sidecar Jobs
Key: CASSSIDECAR-378
URL: https://issues.apache.org/jira/browse/CASSSIDECAR-378
Project: Sidecar for Apache Cassandra
Issue Type: Sub-task
Reporter: Andrés Beck-Ruiz
To complement operational jobs, we need to create a {{LocalJob}} abstract class
that represents a job being conducted on a Cassandra node that is managed by
the Sidecar instance. Similar to the
{{{}[OperationalJob|https://github.com/apache/cassandra-sidecar/blob/trunk/server/src/main/java/org/apache/cassandra/sidecar/job/OperationalJob.java#L199]{}}},
any {{LocalJob}} implementations must define the job logic in an execute or
executeInternal function. For example, a {{RestartJob}} would call out to the
{{LifecycleManager}} to stop and start a local node.
We should also implement the {{{}LocalJobManager{}}}, which will create a new
{{LocalJob}} when the {{LocalJobCoordinator}} detects that the Sidecar instance
should execute a job that is part of a larger operational job. By default, we
will implement the {{{}StorageLocalJobCoordinator{}}}, which will handle
coordination by periodically polling the {{StorageProvider}} to monitor any new
operational jobs. This can be implemented using the
{{[PeriodicTask|https://github.com/apache/cassandra-sidecar/blob/trunk/server/src/main/java/org/apache/cassandra/sidecar/tasks/PeriodicTask.java]}}
interface. The {{LocalJobCoordinator}} will also be responsible for updating
the status of a {{{}LocalJob{}}}; for the {{{}StorageLocalJobCoordinator{}}},
this will entail updating local job state in the {{{}StorageProvider{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]