Add support for a new datastore(CouchDB) in Trove
This is to add a new CouchDB plugin for Trove in addition to the existing NoSQL datastores supported currently. The guestagent for this will include some of the basic functions like create/delete/ list databases and users as well as create and restore backups. Change-Id: Ie828f3aac448de0adc1cef1698e7026f38133e6e Implements: blueprint couchdb-plugin-trove
This commit is contained in:
parent
398b2534c0
commit
84562f906d
117
specs/kilo/couchdb_plugin.rst
Normal file
117
specs/kilo/couchdb_plugin.rst
Normal file
@ -0,0 +1,117 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
..
|
||||
|
||||
===============================
|
||||
Apache CouchDB plugin for Trove
|
||||
===============================
|
||||
|
||||
Launchpad blueprint:
|
||||
|
||||
https://blueprints.launchpad.net/trove/+spec/couchdb-plugin-trove
|
||||
|
||||
Problem Description
|
||||
===============================
|
||||
|
||||
The aim of this blueprint is to enable Trove to support a new datastore type -
|
||||
Apache CouchDB v1.6.1 on Ubuntu and Fedora, in addition to the other NoSQL databases
|
||||
supported by Trove.
|
||||
|
||||
Proposed Change
|
||||
===============================
|
||||
To add support for this new datastore, we need to implement the following:
|
||||
- Add a new diskimage-builder element for Apache CouchDB on Ubuntu and Fedora
|
||||
- Implement the various datastore features like::
|
||||
|
||||
- Launch
|
||||
- Reboot
|
||||
- Terminate
|
||||
- Backup
|
||||
- Restore
|
||||
- Resize
|
||||
- Replication
|
||||
|
||||
Configuration
|
||||
---------------
|
||||
A new configuration group for CouchDB and the different configuration options specific
|
||||
to CouchDB in /trove/common/cfg.py.
|
||||
|
||||
Some of the examples for the configuration options are::
|
||||
|
||||
- tcp_ports
|
||||
- udp_ports
|
||||
- backup_strategy
|
||||
- mount_point
|
||||
- usage_timeout
|
||||
- volume_support
|
||||
- device_path
|
||||
|
||||
Database
|
||||
------------
|
||||
None
|
||||
|
||||
Public API
|
||||
------------
|
||||
None
|
||||
|
||||
Internal API
|
||||
------------
|
||||
None
|
||||
|
||||
Guest Agent
|
||||
------------
|
||||
This requires implementing the various datastore feature for Apache CouchDB like Launch, Reboot,
|
||||
Terminate,Backup, Restore, Resize and Replication. This will include adding the following files
|
||||
specific to Apache CouchDB under the guestagent/datastore module::
|
||||
|
||||
- manager.py
|
||||
- service.py
|
||||
- system.py
|
||||
|
||||
In addition to this, there will also be a class under guestagent/strategies/backup to implement
|
||||
the backup and restore features and another class under guestagent/strategies/replication to
|
||||
implement the replication feature. CouchDB uses the replication interface to do backups hence we
|
||||
will only be implementing full backups for this release.
|
||||
|
||||
These changes wont affect the behavior of the guestagent or its interaction with other components.
|
||||
|
||||
|
||||
Implementation
|
||||
===============================
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
- mariamj@us.ibm.com (Primary Assignee)
|
||||
- Susan Malaika (CouchDB Contact)
|
||||
|
||||
Milestones
|
||||
----------
|
||||
Kilo
|
||||
|
||||
Dependencies
|
||||
============
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
- Add new unit tests for the CouchDB guestAgent
|
||||
- Add integration tests for end-to-end feature testing::
|
||||
|
||||
- create/delete instance
|
||||
- create/restore backups
|
||||
- replication
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
None
|
||||
|
||||
References
|
||||
==========
|
||||
[1] http://guide.couchdb.org/draft
|
||||
[2] http://guide.couchdb.org/draft/api.html
|
||||
[3] http://guide.couchdb.org/draft/replication.html
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user