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

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.