andresbeckruiz opened a new pull request, #339:
URL: https://github.com/apache/cassandra-sidecar/pull/339
## CASSSIDECAR-373
Implements `CassandraStorageProvider`, the default Cassandra backed
implementation of the `StorageProvider` interface for durable operational job
state.
## Changes
- `StorageProvider` interface, which adds a provider-agnostic abstraction
for persisting, querying, and coordinating operational jobs
- `OperationalJobRecord` is the data transfer object representing
persisted job state
- `OperationalJobConfiguration` provides configurable table TTL, and in
the future can support remote Cassandra cluster connection
- Three Cassandra table schemas:
- `cluster_ops` — persists and tracks operational jobs (restarts,
upgrades, etc.)
- `cluster_ops_node_state` — tracks per-node status within an operation
- `active_cluster_ops` — provides mutual exclusion of concurrent
operations via LWT
- Database accessors: (`ClusterOpsDatabaseAccessor`,
`ClusterOpsNodeStateDatabaseAccessor`, `ActiveClusterOpsDatabaseAccessor`)
- `CassandraStorageProvider` composes the three accessors, acts as thin
delegation layer
- Unit tests (integration testing will be unlocked with [CASSSIDECAR-375])
## Future Work
- Remote Cassandra cluster storage support
- Future
[CEP-53](https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-53%3A+Cassandra+Rolling+Restarts+via+Sidecar)
work:
- CASSSIDECAR-374: Implement durable operational job tracker
- CASSSIDECAR-375: Add storage provider to enable JVM Distributed
tests for cluster-wide operational jobs
- CASSSIDECAR-377: Implement job coordination for cluster-wide
operations
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]