Support mongodb point in time recovery
Trove and Point-in-time recovery
OpenStack DBaaS Trove able to perform restoring instance (whole new instance, from scratch) from previously stored backup in remote storage (OpenStack Swift, Amazon AWS S3, etc). From administration/
Restore gives an ability to spin-up new instance from backup (as mentioned earlier), but the Recovery gives an ability to restore already running instance from backup.
Trove core ReST API and Point-in-Time Recovery/Restore flow
ReST routes
HTTP method
Routes
POST
{tenant_
or
{tenant_
Request body
“recovery”: {
“instance”: UUID,
“backup”: UUID,
}
Response object
“recovery”: {
“id”: “instance_id”,
“name”: “instance_name”,
“status”: “BUILDING”,
“datastore”: “mysql”,
“recovered_
“point_
}
Trove taskmanager RPC API and Point-in-Time Recovery/Restore flow
RPC message
RPC method
Method parameters
do_instance_
instance_id
backup_id
RPC message type
CAST with poll until instance reach ACTIVE status.
Trove guestagent RPC API and Point-in-Time Recovery/Restore flow
RPC message
RPC method
Method parameters
do_recovery
}
RPC message type
CAST
Method implementation
No new code. Re-used restore functionality.
Proposed implementation for Trove and for Python-troveclient
Trove: [1]
Python-troveclient: [2]
Useful links
[1] https:/
[2] https:/
WIKI page https:/
Whiteboard
[SlickNik] Please follow BP template if approval is needed. Thanks!
Work Items
Dependency tree
* Blueprints in grey have been implemented.