[CONTROLLER-1440] Clustering: Implement persistence online backup and restore Created: 31/Oct/15 Updated: 15/Nov/15 Resolved: 15/Nov/15 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | Beryllium |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Tom Pantelis | Assignee: | Tom Pantelis |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| External issue ID: | 4564 |
| Priority: | Normal |
| Description |
|
We need to be able to do online backup and restore of the persisted datastore without disrupting the shards. Proposed solution: For backup, provide an RPC that takes the backup file name as input. High-level steps:
For restore, we need to apply the serialized root node for each shard on completion of recovery and before the shard is available for use. We can trigger a restore by looking for a backup file in a well-known directory that would be placed by the user prior to start up. High-level steps:
|
| Comments |
| Comment by Tom Pantelis [ 31/Oct/15 ] |
|
Actually, just storing the serialized root node isn't going to work. We also need the last log index, term, election term info etc, i.e. everything that's captured and stored in the akka snapshot store. So we need to capture a snapshot for each shard and serialize the Snapshot instance. Also, once we start persisting shard info in the ShardManager, we'll have to backup and restore that as well. |
| Comment by Tom Pantelis [ 15/Nov/15 ] |
|
Patches: https://git.opendaylight.org/gerrit/#/c/29085/ |