trove-specs/specs/kilo/couchdb_plugin.rst
Mariam John 84562f906d 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
2014-12-05 09:41:03 -08:00

118 lines
2.7 KiB
ReStructuredText

..
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