[openstack-dev] [trove] final notes from Trove summit design summit sessions

Amrith Kumar amrith at tesora.com
Fri Apr 29 21:20:06 UTC 2016

Here is the updated (final) notes from the Trove design summit in
Austin, TX.

Some changes from yesterday's email are highlighted. 

Changes are marked with "::NOTE::"


Python3 support

- make python34 a voting test in the gate (was already done, so no
  action required)

- peterstac to ensure that trove-dashboard is python3 enabled and
  enable python34 gate changes in trove-dashboard

Multiple datastores with a single manager

etherpad: trove-newton-summit-multiple-datastores

- needs more discussion

Management client and openstack client

::NOTE:: Change from yesterday's summary

- decided to add quota management to the Trove API and expose it
  through the trove client [flavio, maybe]

Trove upgrades

etherpad: trove-newton-summit-trove-upgrades
spec: https://review.openstack.org/#/c/302416/

- the team was in agreement with the proposal that has been up for

- pete mackinnon had a specific request that some thought and research
  be put into the area of how nova rebuild may fail, and how a user
  would have to recover from this.

Extend backend persistent storage

etherpad: trove-newton-summit-extensible-backend-storage
spec: https://review.openstack.org/#/c/302952/

- the team was in agreement with the proposal that has been up for

- need to investigate supporting replicated volumes for DR and
  restoring a new database instance from a volume replica. This
  workflow is not currently possible.

Trove container support

etherpad: trove-newton-summit-container
spec: https://review.openstack.org/307883

- rather than having trove integrate with magnum, we agreed that in
  the short term we would provide containers through the nova lxc or
  lxd drivers

- the spec will need to be rewritten to reflect this, and to identify
  the work involved in doing that

- in the future, trove will have to realize how it will deal with
  clouds where this solution would not work. for example, clouds that
  run kubernetes on native bare metal and don't have nova.

Snapshot as a backup strategy

etherpad: trove-newton-summit-snapshot-as-a-backup-strategy
spec: https://review.openstack.org/#/c/306620/

- the team was in agreement with the proposal that was up for review,
  in principle. some changes are required such as to deal with
  quiescing the database.

- there was discussion of whether the operation of taking the snapshot
  would be taken by the guest agent or the task manager and the
  consensus was that the task manager should be the one generating the

- it was recommended that the task manager should make a synchronous
  call to the task manager to quiesce the database, and to release it
  after the snapshot was taken. this would avoid the asynchronous
  mechanism based on cast().

- there are two operations here that could cause an interruption in
  service of the database and these relate to the period of time when
  the database is quiesced. it is possible that the operation to
  quiesce the database may take a while to happen (for example if
  there is a long running transaction going on). this could cause the
  call() from the task manager to timeout. Similarly once the database
  is quiesced, the snapshot may take a while. It was suggested that
  there should be mechanisms to place limits on how long either of
  these can take.

- it should be configurable to determine where the snapshot will get
  stored; if we have to actually stream it somewhere. this is not
  necessarily the case for all storage solutions.

- point in time rollback is not a deliverable of this project.

Make it easier to build guest images

etherpad: trove-newton-summit-easier-to-build-images
spec: https://review.openstack.org/#/c/295274/

- the consensus was that we should create a new repository (named
  something like trove-image-builder) and pick up all the elements
  from trove-integration and move them here

- we need to write a new element to install the guestagent code into
  the image

- we need to write a image-builder script that would do the moral
  equivalent of redstack build-image

- that script/tool should allow for creation of both
  development/testing images and images that a customer could use.

- [amrith] to send a note to the ML with the [dib] in the subject line
  and keep the dib folks informed if there are real problems that we
  face with the tool

- pete mackinnon will be working to update and provide elements with
  dib that will generate database images for some databases and
  operating system (CentOS 7)

- there was no consensus on whether the future should be dib based or
  libvirt-customize based

- there was a concern that if we ended up with a different tool in the
  future, there would end up being duplication and redundancy in the
  image-builder tool

- once we get the elements out of trove-integration, if there's not
  much left there we can move it to the trove project and get rid of
  trove-integration altogether

::NOTE:: Change from yesterday's summary below

- in parallel work on libguestfs in parallel with the understanding
  that dib is the priority because it currently supports a number of
  databases and platforms already

- pete to update the spec to do all of this

Trove V2 API

etherpad: trove-newton-summit-v2-api

- need to review and think about this some more

- would like more details and feel that this spec needs to be fleshed
  out some more; for example what will the REST api look like

Modularity guest image and agent

etherpad: trove-newton-summit-modularity-guest-image

- needs more investigation and come up with a more concrete proposal.

Self signed certificates for Trove

etherpad: trove-newton-summit-ssl-self-signed-certificates

Baking self signed certificates onto the image is a non-starter.

Using cloud-init and sending down files at nova boot time is one
thing, but there is no such API on rebuild. Therefore an upgrade of an
instance could lose the CA Certificate.

If there is a multi-region deployment of Trove, access to RabbitMQ is
a challenge anyway and therefore we have to keep that in mind in
handling the certificates.


etherpad: trove-newton-summit-superconductor

- the objective is to get rid of the guest agent on the guest

- the sense is that we want to lose the backup and restore capability
  as we have it today. We don't necessarily need the swift client to
  be on the guest, we could directly hit the REST endpoint.

- we need to understand better how we will deal with the tracking of
  instance/database state. with the guest agent, there is a heartbeat
  from the guest which the conductor logs into the database. how do we
  want to do this with the superconductor.

- this has implications, for example, with the performance of trove
  list. It would have to go and physically poll every instance if we
  don't cache state in a database.

- the consensus was that we'd write a spec for this and move this
  forward. currently this will be done by Nikhil and Flavio.

Improve guestagent datastore models

etherpad: trove-newton-summit-refactor-user-db-extensions
bug: 1498573

- better to fail fast and add checking which is now in the guestagent
  into the API

- no need for a blue print, sync up with petr's changes

- if you ask in the API call to create a database and a user, if the
  first succeeds and the second fails, cleanup properly

- agreed to move forward with this as a bug fix

Cluster and replication locality

etherpad: trove-newton-summit-locality
spec: https://review.openstack.org/#/c/298994/
code: https://review.openstack.org/#/c/301936/
code: https://review.openstack.org/#/c/301342/
code: https://review.openstack.org/#/c/301342/
code: https://review.openstack.org/#/c/301342/

- currently we don't store the server group associated with a cluster
  or a replica set; when we need to determine which server group an
  instance is part of, we enumerate all server groups and search for
  the instance. this seems less than awesome. peterstac to chat with
  Nova about it. Also check with Sahara, they may have the same issue
  and may have solved it already. [Jack Lauritsen]

- do we default the affinity or anti-affinty? No. If we do, we need to
  expose it to horizon.

What do we do about heat?

etherpad: trove-newton-summit-is-the-heat-on

- [amrith] push a review to do this and we can debate it there.

Graduating datastores

etherpad: trove-newton-summit-graduating-datastores

PROPOSAL: Revert all datastores into a common directory, not having
the experimental and release preview in the path names, and instead
document clearly the level of testing and support in the form of a
readme with each datastore. We could optionally add a LOG.info()
message with each datastore manager and point people to the document.

- if anything, early in O to reduce impact

- peterstac to continue to work on refactoring the scenario tests.

Release calendar

etherpad: none
review: https://review.openstack.org/#/c/311123/2

- found some errors in patch set 1, made patch set 2.

- trove-dashboard freeze related question.

- trove client libraries freeze is set to R-6 which is one week before
  the hard freeze. this gives us a little time to fix any last minute

Couchbase clusters
PostgreSQL backup and restore
PostgreSQL replication

- for all three, we need to get these reviews prioritized and moved

Upgrade Trove RPC API Version [vkmc]

- currently no spec for review

- the proposed spec will address revisioning all of the internal API's

Upgrade from using Keystone v2 API to v3 API

potentially telles

Service tenant neutron port mapping

- spec from Dale (Catalyst IT)

Switch redstack to use neutron by default

- peterstac push up a change

Final summary of projects that we discussed

python3: Victor and Abhishek
- Newton deliverable

multiple datastores with the same manager:
- no action

management client and openstack client:
- no action

Trove upgrades: morgan
- Intending that the feature will be delivered in newton

Extending Trove's storage support: amrith
- Update the spec
- Provide some initial prototype

Trove container support: flavio
- Coming up with a revised spec, ansible playbook,
- No code changes anticipated

Snapshots for cinder backup: Telles
- Delivered feature

guest images: pete, victoria
- Update spec and provide details
- Migrate dib elements to new repo, this is the newton priority
- In parallel do work on libguestfs, trove community has not
  specifically agreed to move to this tool, the sahara project has

trove v2 api   investigation: morgan
- More details

improve code modularity between guest and image: amrith
- More details

self signed certificates: amrith
- Spec and code if time permits

superconductor: nikhil, pete, flavio, amrith
- Finalize the Spec for newton
- Stretch goal is delivery of the feature

refactor user/db extensions: matt
- Code is available for review

locality support clusters and replication: peter
- Code and spec are ready for review

couchbase clusters: petr
- Code for review

postgresql b&r: petr
- Code for review

postgresql replication: petr
- Code for review

Heat:  - amrith
- Propose change set removing heat support in Trove

- to be clear, this relates to Trove's use of heat for provisioning
  instances, not the ability to deploy and orchestrate Trove from

Graduate datastores, rearrange in tree:
- Nothing for now

scenario tests refactoring and making voting:
- Work on CI/Scenario tests for multiple databases into non-voting at

versioning of oslo.messaging API's: vkmc
- Spec for sure
- Code as well

Keystone API v3: telles
- Investigate and put up a spec
- Code is not (at this time) a goal

Service tenant neutron port mapping
- Spec from Dale Dalees

amrith at amrith-work:~$

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 966 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160429/851b8c28/attachment.pgp>

More information about the OpenStack-dev mailing list