trove-specs/specs/kilo/vertica-datastore.rst
Sushil Kumar bdab1b6054 Add support for new Vertica datastore in Trove
This is to add a new Vertica datastore for Trove in addition to the
existing datastores supported currently.
The guestagent for this will include some of the basic functions
like launch, terminate, resize instance.

Change-Id: I0782cac5d7325f95daac259eb6400106a027e541
Implements: blueprint vertica-db-support
2015-02-16 07:29:01 +00:00

137 lines
3.5 KiB
ReStructuredText

..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
..
===============================
Add Vertica datastore for Trove
===============================
Launchpad blueprint:
https://blueprints.launchpad.net/trove/+spec/vertica-db-support
Problem Description
===============================
The aim of this blueprint is to enable Trove to support a new datastore type -
HP Vertica 7.1 CE on Ubuntu.
Proposed Change
===============================
To add support for this new datastore, we need to implement the following:
- Add a new diskimage-builder element for Vertica
- Implement the various datastore features like::
- Launch
- Reboot
- Terminate
- Resize
Configuration
---------------
A new configuration group for Vertica and the different configuration options specific
to Vertica in trove/common/cfg.py.
Some of the examples for the configuration options are::
- tcp_ports
- udp_ports
- backup_strategy
- backup_incremental_strategy
- replication_strategy
- backup_namespace
- restore_namespace
- root_on_create
- mount_point
- volume_support
- device_path
Database
------------
None
Public API
------------
None
Internal API
------------
None
Guest Agent
------------
- This requires implementing the various datastore feature for Vertica like Launch, Reboot, Terminate, Resize.
- This will include adding the following files specific to Vertica under the guestagent/datastore module::
- manager.py
- service.py
- system.py
These changes will not affect the behavior of the guestagent or its interaction with other components.
Disk-Image-Builder Elements
---------------------------
- Disk-Image-Building would be a 2-step process, basically::
- Download the Vertica package.
- Execute the image-builder
- CE is the free edition of HP Vertica database available at www.vertica.com
- One needs to go through a free registration process, which enables a user to download the Vertica package.
- Image-building elements would expect user to copy $VERTICA_PACKAGE_FILE at $VERTICA_SOURCE.
- It would be then the job of DIB elements to::
- Copy $VERTICA_PACKAGE_FILE from $VERTICA_SOURCE and host in the guest-image.
- Install the essential requisite packages.
- Install the Vertica package to guest-image.
- Create the Vertica dba user named as "dbadmin", with desired group and path & time-zone settings setup to profile.
- Create a base location to host database files.
Implementation
===============================
Assignee(s)
-----------
- sushil.kumar3@hp.com (Primary Assignee)
- saurabh.surana@hp.com
- jonathan.halterman@hp.com
Milestones
----------
"Kilo-3"
Dependencies
============
None
Testing
=======
- Vertica datastore would be tested using a 3rd party CI hosted by HP.
- New unit tests would be added for the Vertica guestagent.
- Integration tests needs to be added for end-to-end feature testing::
- create/delete instance
- resize instance
Documentation Impact
====================
- Documentation would need the update on::
- HP Vertica being added as new datastore.
- Capabilities of Trove for HP Vertica datastore.
- How to build the guest-image required for hosting HP Vertica guest.
References
==========
[1] https://my.vertica.com/docs/7.1.x/HTML/index.htm
[2] https://my.vertica.com/download-community-edition/#EE
[3] https://my.vertica.com/hp-vertica-community-edition-software-license-agreement/