<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Doug+Shelley</id>
		<title>OpenStack - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Doug+Shelley"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/wiki/Special:Contributions/Doug_Shelley"/>
		<updated>2026-07-08T17:58:59Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=123121</id>
		<title>Meetings/TroveMeeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=123121"/>
				<updated>2016-03-29T14:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Weekly Trove Team Meeting =&lt;br /&gt;
&lt;br /&gt;
We have weekly team meetings on Wednesdays at 18:00 UTC in #openstack-meeting-alt&lt;br /&gt;
&lt;br /&gt;
Want to add an agenda item? Please append your item to the upcoming weekly agenda while keeping in mind:&lt;br /&gt;
&lt;br /&gt;
==== Guidelines for Writing Clear Agenda Items ====&lt;br /&gt;
An agenda item should have a clearly defined objective.&lt;br /&gt;
 &lt;br /&gt;
* [owner/author/interested-party] Good: Review #xxxxx has comments on foobar.py from multiple folks and there seems to be a lack of consensus on how to solve problem ‘y’. Let’s quickly rehash the merits of both approaches in 2-5 minutes and call for a vote. Goal: choose an approach and move forward on implementation.&lt;br /&gt;
* Bad: Discuss blueprint ‘xyz’&lt;br /&gt;
* Bad: Revisit blueprint ‘abc’ that we talked about last week to get answers on remaining disagreements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When referring to previous conversations or competing viewpoints, be sure to summarize them.&lt;br /&gt;
&lt;br /&gt;
Please make sure to include your own name in the first line of the agenda item, or the name of the person who will be presenting the subject/leading the discussion.&lt;br /&gt;
&lt;br /&gt;
== Trove Meeting, March 30, 2016 ==&lt;br /&gt;
&lt;br /&gt;
* Action items from last week's meeting&lt;br /&gt;
** [all] If you have a patch set that you intend to resume work on, please put an update in it to that effect so we don't go abandon it under you ...&lt;br /&gt;
** [all]  if any of the abandoned patches looks like something you would like to pick up feel free&lt;br /&gt;
** cp16net reply to trove-dashboard ML question for RC2&lt;br /&gt;
** [all] please review changes [ https://review.openstack.org/#/c/262289/], [ https://review.openstack.org/#/c/262287/], and link [ http://openstack.markmail.org/thread/jepcqu335mrb5c7l] in agenda and update the reviews&lt;br /&gt;
** flaper87 to WF+1 the patches in question [ https://review.openstack.org/#/c/262289/] and [ https://review.openstack.org/#/c/262287/] [DONE]&lt;br /&gt;
* Trove pulse update&lt;br /&gt;
** http://bit.ly/1VQyg00 [http://bit.ly/1VQyg00]&lt;br /&gt;
* Announcements&lt;br /&gt;
** [http://releases.openstack.org/newton/schedule.html Newton release schedule has been published ]&lt;br /&gt;
*** Some things I've learned from the Mitaka cycle&lt;br /&gt;
**** The schedule is known so far in advance that it is prudent to plan for it&lt;br /&gt;
**** The dates for things that are listed as &amp;quot;Final&amp;quot; are in fact final and not subject to FFE's&lt;br /&gt;
***** If we want to push any code into OSLO, R-6 is a hard deadline.&lt;br /&gt;
***** R-5, is the '''hard''' freeze for the python-troveclient. We '''must''' get all new functionality we need in the client into a version by that date or it won't be available for the release.&lt;br /&gt;
***** R-5 is the '''target date''' by which all new functionality should be in, you need to request FFE's for anything that does not merge by that date&lt;br /&gt;
***** R-3 is the RC1 '''target date''', not a hard date. In the Mitaka cycle, I mistakenly believed that R-3 is a hard RC1 date. My mistake.&lt;br /&gt;
** [https://review.openstack.org/#/c/164035/ Getting rid of eventlet and replacing it with something else]&lt;br /&gt;
&lt;br /&gt;
* Ongoing review of projects. At the mid-cycle in Raleigh, one of the action items that we took away was that we should start tracking and monitoring all projects under way to completion through the release cycle. I'm going to start this up with the projects that we know are under way, and begin to highlight them so that people can focus time on reviewing them.&lt;br /&gt;
** [pmackinn] [https://review.openstack.org/#/c/295274/ Separate trove image build project based on libguestfs tools]&lt;br /&gt;
** [tellesnóbrega/vkmc] [https://review.openstack.org/#/c/256057/ Implementing CEPH as a backend for backups]&lt;br /&gt;
** [sonali/vkmc] [https://review.openstack.org/#/c/263980/ Configuration Groups for Couchdb]&lt;br /&gt;
** [johnma] [https://review.openstack.org/#/c/255437/ Enable CouchDB replication in Trove]&lt;br /&gt;
** [amrith] [https://review.openstack.org/#/c/256079/ Add support for hbase in Trove]&lt;br /&gt;
** [peterstac] [https://blueprints.launchpad.net/trove/+spec/replication-affinity Affinity for replication sets]&lt;br /&gt;
** [peterstac] Affinity for clusters - BP coming&lt;br /&gt;
** [petmal] [https://blueprints.launchpad.net/trove/+spec/couchbase-cluster-support Couchbase clusters]&lt;br /&gt;
** [vgnbkr] Guest instance upgrade - BP coming &lt;br /&gt;
** [petmal] [https://blueprints.launchpad.net/trove/+spec/postgresql-incremental-backup PostgreSQL incremental backup/restore]&lt;br /&gt;
** [petmal] [https://blueprints.launchpad.net/trove/+spec/replication-affinity PostgreSQL replication]&lt;br /&gt;
** [mvandijk] [https://blueprints.launchpad.net/trove/+spec/associate-volume-type-datastore Associate volume-type with datastore]&lt;br /&gt;
** [vgnbkr] [https://review.openstack.org/#/c/294213/ Multi-Region Support]&lt;br /&gt;
* Summit planning&lt;br /&gt;
** [https://etherpad.openstack.org/p/trove-newton-proposed-sessions Propose sessions for the summit]&lt;br /&gt;
** [http://markmail.org/message/avbqqzwhog36tme2 Conference room allocations announced] (Trove: 3fb, 6wr, cm:half) &lt;br /&gt;
** [http://openstack.markmail.org/thread/yeg57r5yyddveoka Austin Design Summit track layout] The Trove sessions are as follows, please mark your calendars.&lt;br /&gt;
*** (WR1) Tuesday 0950 to 1030&lt;br /&gt;
*** (WR2) Wednesday 1350 to 1430&lt;br /&gt;
*** (WR3) Wednesday 1530 to 1610&lt;br /&gt;
*** (WR4) Thursday 1150 to 1230&lt;br /&gt;
*** (WR5) Thursday 1330 to 1410&lt;br /&gt;
*** (WR6) Thursday 1420 to 1500&lt;br /&gt;
*** (FB1) Wednesday 1720 to 1800&lt;br /&gt;
*** (FB2) Thursday 0950 to 1030&lt;br /&gt;
*** (FB3) Thursday 1100 to 1140&lt;br /&gt;
*** (CM) Friday 0900 to 1230.&lt;br /&gt;
* Planning for mid-cycle&lt;br /&gt;
** It seems like this is a long way off but it really isn't.&lt;br /&gt;
** I'd like to propose R-7, in the New York City area.&lt;br /&gt;
* Open Discussion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://wiki.openstack.org/wiki/Trove/MeetingAgendaHistory Meeting Agenda History]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://eavesdrop.openstack.org/meetings/trove/2016 Meeting Chat Logs]&lt;br /&gt;
&lt;br /&gt;
==Running The Meeting==&lt;br /&gt;
* To start the meeting, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#startmeeting trove&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Then, publish the link to the agenda for the meeting (this page).&lt;br /&gt;
* Use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#topic&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to mark each topic change.&lt;br /&gt;
* You can find the near-full list of Meetbot commands [https://wiki.debian.org/MeetBot here]. Instructions for voting (which can be useful for a quick show of hands) live [http://docs.openstack.org/infra/system-config/irc.html#voting here].&lt;br /&gt;
* During the meeting, don't forget to liberally use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#info&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#agreed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#action&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#link&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to make sure the critical discussion points will be highlighted in the meeting log. Attendees can use these Meetbot keywords as well.&lt;br /&gt;
* To end the meeting, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#endmeeting&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=123120</id>
		<title>Meetings/TroveMeeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=123120"/>
				<updated>2016-03-29T13:58:52Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Weekly Trove Team Meeting =&lt;br /&gt;
&lt;br /&gt;
We have weekly team meetings on Wednesdays at 18:00 UTC in #openstack-meeting-alt&lt;br /&gt;
&lt;br /&gt;
Want to add an agenda item? Please append your item to the upcoming weekly agenda while keeping in mind:&lt;br /&gt;
&lt;br /&gt;
==== Guidelines for Writing Clear Agenda Items ====&lt;br /&gt;
An agenda item should have a clearly defined objective.&lt;br /&gt;
 &lt;br /&gt;
* [owner/author/interested-party] Good: Review #xxxxx has comments on foobar.py from multiple folks and there seems to be a lack of consensus on how to solve problem ‘y’. Let’s quickly rehash the merits of both approaches in 2-5 minutes and call for a vote. Goal: choose an approach and move forward on implementation.&lt;br /&gt;
* Bad: Discuss blueprint ‘xyz’&lt;br /&gt;
* Bad: Revisit blueprint ‘abc’ that we talked about last week to get answers on remaining disagreements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When referring to previous conversations or competing viewpoints, be sure to summarize them.&lt;br /&gt;
&lt;br /&gt;
Please make sure to include your own name in the first line of the agenda item, or the name of the person who will be presenting the subject/leading the discussion.&lt;br /&gt;
&lt;br /&gt;
== Trove Meeting, March 30, 2016 ==&lt;br /&gt;
&lt;br /&gt;
* Action items from last week's meeting&lt;br /&gt;
** [all] If you have a patch set that you intend to resume work on, please put an update in it to that effect so we don't go abandon it under you ...&lt;br /&gt;
** [all]  if any of the abandoned patches looks like something you would like to pick up feel free&lt;br /&gt;
** cp16net reply to trove-dashboard ML question for RC2&lt;br /&gt;
** [all] please review changes [ https://review.openstack.org/#/c/262289/], [ https://review.openstack.org/#/c/262287/], and link [ http://openstack.markmail.org/thread/jepcqu335mrb5c7l] in agenda and update the reviews&lt;br /&gt;
** flaper87 to WF+1 the patches in question [ https://review.openstack.org/#/c/262289/] and [ https://review.openstack.org/#/c/262287/] [DONE]&lt;br /&gt;
* Trove pulse update&lt;br /&gt;
** http://bit.ly/1VQyg00 [http://bit.ly/1VQyg00]&lt;br /&gt;
* Announcements&lt;br /&gt;
** [http://releases.openstack.org/newton/schedule.html Newton release schedule has been published ]&lt;br /&gt;
*** Some things I've learned from the Mitaka cycle&lt;br /&gt;
**** The schedule is known so far in advance that it is prudent to plan for it&lt;br /&gt;
**** The dates for things that are listed as &amp;quot;Final&amp;quot; are in fact final and not subject to FFE's&lt;br /&gt;
***** If we want to push any code into OSLO, R-6 is a hard deadline.&lt;br /&gt;
***** R-5, is the '''hard''' freeze for the python-troveclient. We '''must''' get all new functionality we need in the client into a version by that date or it won't be available for the release.&lt;br /&gt;
***** R-5 is the '''target date''' by which all new functionality should be in, you need to request FFE's for anything that does not merge by that date&lt;br /&gt;
***** R-3 is the RC1 '''target date''', not a hard date. In the Mitaka cycle, I mistakenly believed that R-3 is a hard RC1 date. My mistake.&lt;br /&gt;
** [https://review.openstack.org/#/c/164035/ Getting rid of eventlet and replacing it with something else]&lt;br /&gt;
&lt;br /&gt;
* Ongoing review of projects. At the mid-cycle in Raleigh, one of the action items that we took away was that we should start tracking and monitoring all projects under way to completion through the release cycle. I'm going to start this up with the projects that we know are under way, and begin to highlight them so that people can focus time on reviewing them.&lt;br /&gt;
** [pmackinn] [https://review.openstack.org/#/c/295274/ Separate trove image build project based on libguestfs tools]&lt;br /&gt;
** [tellesnóbrega/vkmc] [https://review.openstack.org/#/c/256057/ Implementing CEPH as a backend for backups]&lt;br /&gt;
** [sonali/vkmc] [https://review.openstack.org/#/c/263980/ Configuration Groups for Couchdb]&lt;br /&gt;
** [johnma] [https://review.openstack.org/#/c/255437/ Enable CouchDB replication in Trove]&lt;br /&gt;
** [amrith] [https://review.openstack.org/#/c/256079/ Add support for hbase in Trove]&lt;br /&gt;
** [peterstac] [https://blueprints.launchpad.net/trove/+spec/replication-affinity Affinity for replication sets]&lt;br /&gt;
** [vgnbkr] [https://review.openstack.org/#/c/294213/ Multi-Region Support]&lt;br /&gt;
* Summit planning&lt;br /&gt;
** [https://etherpad.openstack.org/p/trove-newton-proposed-sessions Propose sessions for the summit]&lt;br /&gt;
** [http://markmail.org/message/avbqqzwhog36tme2 Conference room allocations announced] (Trove: 3fb, 6wr, cm:half) &lt;br /&gt;
** [http://openstack.markmail.org/thread/yeg57r5yyddveoka Austin Design Summit track layout] The Trove sessions are as follows, please mark your calendars.&lt;br /&gt;
*** (WR1) Tuesday 0950 to 1030&lt;br /&gt;
*** (WR2) Wednesday 1350 to 1430&lt;br /&gt;
*** (WR3) Wednesday 1530 to 1610&lt;br /&gt;
*** (WR4) Thursday 1150 to 1230&lt;br /&gt;
*** (WR5) Thursday 1330 to 1410&lt;br /&gt;
*** (WR6) Thursday 1420 to 1500&lt;br /&gt;
*** (FB1) Wednesday 1720 to 1800&lt;br /&gt;
*** (FB2) Thursday 0950 to 1030&lt;br /&gt;
*** (FB3) Thursday 1100 to 1140&lt;br /&gt;
*** (CM) Friday 0900 to 1230.&lt;br /&gt;
* Planning for mid-cycle&lt;br /&gt;
** It seems like this is a long way off but it really isn't.&lt;br /&gt;
** I'd like to propose R-7, in the New York City area.&lt;br /&gt;
* Open Discussion&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://wiki.openstack.org/wiki/Trove/MeetingAgendaHistory Meeting Agenda History]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[http://eavesdrop.openstack.org/meetings/trove/2016 Meeting Chat Logs]&lt;br /&gt;
&lt;br /&gt;
==Running The Meeting==&lt;br /&gt;
* To start the meeting, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#startmeeting trove&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Then, publish the link to the agenda for the meeting (this page).&lt;br /&gt;
* Use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#topic&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to mark each topic change.&lt;br /&gt;
* You can find the near-full list of Meetbot commands [https://wiki.debian.org/MeetBot here]. Instructions for voting (which can be useful for a quick show of hands) live [http://docs.openstack.org/infra/system-config/irc.html#voting here].&lt;br /&gt;
* During the meeting, don't forget to liberally use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#info&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#agreed&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#action&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#link&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to make sure the critical discussion points will be highlighted in the meeting log. Attendees can use these Meetbot keywords as well.&lt;br /&gt;
* To end the meeting, use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;#endmeeting&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=72534</id>
		<title>Meetings/TroveMeeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=72534"/>
				<updated>2015-01-28T16:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Weekly Trove Team Meeting =&lt;br /&gt;
&lt;br /&gt;
We have weekly team meetings on Wednesdays at 18:00 UTC in #openstack-meeting-alt&lt;br /&gt;
&lt;br /&gt;
Want to add an agenda item? Please append your item to the upcoming weekly agenda while keeping in mind:&lt;br /&gt;
&lt;br /&gt;
== Guidelines for Writing Clear Agenda Items ==&lt;br /&gt;
An agenda item should have a clearly defined objective.&lt;br /&gt;
 &lt;br /&gt;
* Good: Review #xxxxx has comments on foobar.py from multiple folks and there seems to be a lack of consensus on how to solve problem ‘y’. Let’s quickly rehash the merits of both approaches in 2-5 minutes and call for a vote. Goal: choose an approach and move forward on implementation.&lt;br /&gt;
* Bad: Discuss blueprint ‘xyz’&lt;br /&gt;
* Bad: Revisit blueprint ‘abc’ that we talked about last week to get answers on remaining disagreements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When referring to previous conversations or competing viewpoints, be sure to summarize them.&lt;br /&gt;
== Agenda for Jan 28th ==&lt;br /&gt;
* Review #147908: Try to gain some consensus on how to resolve the issues itemized in final review comment.&lt;br /&gt;
&lt;br /&gt;
== Agenda for Jan 21st ==&lt;br /&gt;
&lt;br /&gt;
* Review #131610 : Security concerns, continued from the previous meeting + general review&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/JunoCycleMeetup&amp;diff=60633</id>
		<title>Trove/JunoCycleMeetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/JunoCycleMeetup&amp;diff=60633"/>
				<updated>2014-08-15T15:32:18Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: Replaced content with &amp;quot;  This page was a duplicate of https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
This page was a duplicate of https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Sprints&amp;diff=60629</id>
		<title>Sprints</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Sprints&amp;diff=60629"/>
				<updated>2014-08-15T15:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Future sprints ===&lt;br /&gt;
&lt;br /&gt;
Here is a chronological list of future sprints. please keep it ordered and remove past ones.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
|- bgcolor=#eeeeee&lt;br /&gt;
| Date&lt;br /&gt;
| Location&lt;br /&gt;
| Theme&lt;br /&gt;
| More information at&lt;br /&gt;
|-&lt;br /&gt;
| July 2 - 4&lt;br /&gt;
| Paris, France&lt;br /&gt;
| Ceilometer/All projects&lt;br /&gt;
| [[Sprints/ParisJuno2014]]&lt;br /&gt;
|-&lt;br /&gt;
| July 7 - 9&lt;br /&gt;
| San Antonio, TX, USA&lt;br /&gt;
| Barbican&lt;br /&gt;
| TBD, [[Meetings/Barbican]]&lt;br /&gt;
|-&lt;br /&gt;
| July 9 - 11&lt;br /&gt;
| Bloomington, MN, USA&lt;br /&gt;
| Neutron&lt;br /&gt;
| [https://etherpad.openstack.org/p/neutron-juno-mid-cycle-meeting]&lt;br /&gt;
|-&lt;br /&gt;
| July 9 - 11&lt;br /&gt;
| San Antonio, TX, USA&lt;br /&gt;
| Keystone&lt;br /&gt;
| [http://dolphm.com/openstack-keystone-hackathon-for-juno/]&lt;br /&gt;
|-&lt;br /&gt;
| July 14 - 18&lt;br /&gt;
| Darmstadt, Germany&lt;br /&gt;
| QA &amp;amp; Infra&lt;br /&gt;
| [[Qa_Infra_Meetup_2014]]&lt;br /&gt;
|-&lt;br /&gt;
| July 14 - 18&lt;br /&gt;
| Seattle, USA&lt;br /&gt;
| Security Group&lt;br /&gt;
| [https://etherpad.openstack.org/p/ossg-juno-meetup]&lt;br /&gt;
|-&lt;br /&gt;
| July 21 - July 25&lt;br /&gt;
| Raleigh, NC, USA&lt;br /&gt;
| TripleO (&amp;amp; Heat)&lt;br /&gt;
| [https://etherpad.openstack.org/p/juno-midcycle-meetup]&lt;br /&gt;
|-&lt;br /&gt;
| July 28 - Jul 30&lt;br /&gt;
| Beaverton, OR, USA&lt;br /&gt;
| Nova &amp;amp; Ironic&lt;br /&gt;
| [[Sprints/BeavertonJunoSprint]]&lt;br /&gt;
|-&lt;br /&gt;
| Aug 11 - Aug 15&lt;br /&gt;
| Fort Collins, CO&lt;br /&gt;
| Cinder&lt;br /&gt;
| [[https://etherpad.openstack.org/p/CinderMidCycleMeetupAug2014]]&lt;br /&gt;
|-&lt;br /&gt;
| Aug 18 - Aug 20&lt;br /&gt;
| Raleigh, NC, USA&lt;br /&gt;
| Heat&lt;br /&gt;
| [https://etherpad.openstack.org/p/heat-juno-midcycle-meetup]&lt;br /&gt;
|-&lt;br /&gt;
| Aug 20 - Aug 23&lt;br /&gt;
| Cambridge, MA, USA&lt;br /&gt;
| Trove&lt;br /&gt;
| [[Trove/JunoMidCycleMeetup|Link]]&lt;br /&gt;
|-&lt;br /&gt;
| July 24 - July 25&lt;br /&gt;
| Palo Alto, CA, USA&lt;br /&gt;
| Glance&lt;br /&gt;
| [[https://etherpad.openstack.org/p/glance-juno-mid-cycle-meeting]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60628</id>
		<title>Trove/JunoMidCycleMeetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60628"/>
				<updated>2014-08-15T15:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Database Program (Trove) - Juno Mid-cycle Meetup =&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
&lt;br /&gt;
There will be a mid-cycle meetup for ATCs (Active Technical Contributors) to the OpenStack Database program in August, 2014.  &lt;br /&gt;
The final schedule of topics will be determined by those that attend, shortly before the event.&lt;br /&gt;
&lt;br /&gt;
Tesora [http://www.tesora.com] is helping organize this event.&lt;br /&gt;
&lt;br /&gt;
== When ==&lt;br /&gt;
&lt;br /&gt;
3 days, August 20-22, 2014&lt;br /&gt;
&lt;br /&gt;
== Where ==&lt;br /&gt;
&lt;br /&gt;
The MidCycle Meetup will be held at MIT (CSAIL), in Cambridge, MA.&lt;br /&gt;
&lt;br /&gt;
The meetings will be in building 32 [http://whereis.mit.edu/?go=32]&lt;br /&gt;
&lt;br /&gt;
== Event Details ==&lt;br /&gt;
On Tuesday, from 9AM to 5PM, Tesora is organizing an OpenStack Trove Day, a day of events about OpenStack with a focus on Trove. If you are attending the mid-cycle meetup, consider attending this event as well. Contact Amrith (amrith (at) tesora (dot) com, or amrith on IRC) or Doug (doug (at) tesora (dot) com, or dougshelley66 on IRC) for more details&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Wed !! Thr !! Fri&lt;br /&gt;
|-&lt;br /&gt;
| 9-11 || Meets and greets || State of CI and Testing || OpenStack Integration (oslo, ceilometer, etc)&lt;br /&gt;
|-&lt;br /&gt;
| 11-1 || Show and tell - Juno Edition || Replication and Failover || Capabilities&lt;br /&gt;
|-&lt;br /&gt;
| 1-3 || Current state of blueprints || Clustering Next Steps   || UI / Horizon update&lt;br /&gt;
|-&lt;br /&gt;
| 3-5 || Current state of Docs  || Heat Update || Parking Lot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration ===&lt;br /&gt;
* Please confirm your attendance at https://www.eventbrite.com/e/openstack-mid-cycle-meetup-tickets-11663001351&lt;br /&gt;
&lt;br /&gt;
=== Key Signing Party ===&lt;br /&gt;
&lt;br /&gt;
If there is interest, we will conduct a Key Signing Party&lt;br /&gt;
More details at: https://wiki.openstack.org/wiki/OpenPGP_Web_of_Trust/Trove_Icehouse_Sprint&lt;br /&gt;
&lt;br /&gt;
=== Hotels === &lt;br /&gt;
Hotels close to the event (closest on the top of the list). &lt;br /&gt;
&lt;br /&gt;
Cambridge Marriott, 50 Broadway, Cambridge [http://www.marriott.com/hotels/travel/boscb-boston-marriott-cambridge/] &lt;br /&gt;
&lt;br /&gt;
We have a block of rooms here at $259 per night. The advertised rates are much higher ($324). When booking be sure to ask for the &amp;quot;Tesora&amp;quot; event rate.&lt;br /&gt;
&lt;br /&gt;
There are several other hotels in the neighborhood. If you get a much better deal, please update this page so others can benefit from it.&lt;br /&gt;
&lt;br /&gt;
'''UPDATE: The block is for the mid-cycle meetup as well as people who are attending the Trove event sponsored by Tesora. They'll fill up fast, book quickly. Cambridge is expensive and other options are likely to be a lot more pricey.'''&lt;br /&gt;
&lt;br /&gt;
===  Travel === &lt;br /&gt;
* Recommended airport: BOS, Boston Logan International Airport, Boston, MA&lt;br /&gt;
* Alternate airport: PVD, T.F. Green International Airport, Providence, RI&lt;br /&gt;
* Alternate airport: MHT, Manchester Airport, Manchester, NH&lt;br /&gt;
&lt;br /&gt;
== Things to do ==&lt;br /&gt;
&lt;br /&gt;
Several people from the Tesora team are from the Boston area. Contact any of us.&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60627</id>
		<title>Trove/JunoMidCycleMeetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60627"/>
				<updated>2014-08-15T15:07:01Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Database Program (Trove) - Juno Mid-cycle Meetup =&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
&lt;br /&gt;
There will be a mid-cycle meetup for ATCs (Active Technical Contributors) to the OpenStack Database program in August, 2014.  &lt;br /&gt;
The final schedule of topics will be determined by those that attend, shortly before the event.&lt;br /&gt;
&lt;br /&gt;
Tesora [http://www.tesora.com] is helping organize this event.&lt;br /&gt;
&lt;br /&gt;
== When ==&lt;br /&gt;
&lt;br /&gt;
3 days, August 20-22, 2014&lt;br /&gt;
&lt;br /&gt;
== Where ==&lt;br /&gt;
&lt;br /&gt;
The MidCycle Meetup will be held at MIT (CSAIL), in Cambridge, MA.&lt;br /&gt;
&lt;br /&gt;
The meetings will be in building 32 [http://whereis.mit.edu/?go=32]&lt;br /&gt;
&lt;br /&gt;
== Event Details ==&lt;br /&gt;
On Tuesday, from 9AM to 5PM, Tesora is organizing an OpenStack Trove Day, a day of events about OpenStack with a focus on Trove. If you are attending the mid-cycle meetup, consider attending this event as well. Contact Amrith (amrith (at) tesora (dot) com, or amrith on IRC) or Doug (doug (at) tesora (dot) com, or dougshelley66 on IRC) for more details&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Wed !! Thr !! Fri&lt;br /&gt;
|-&lt;br /&gt;
| 9-11 || Meets and greets || State of CI and Testing || OpenStack Integration (oslo, ceilometer, etc)&lt;br /&gt;
|-&lt;br /&gt;
| 11-1 || Show and tell - Juno Edition || Replication and Failover || Capabilities&lt;br /&gt;
|-&lt;br /&gt;
| 1-3 || Current state of blueprints || Clustering Next Steps   || UI / Horizon update&lt;br /&gt;
|-&lt;br /&gt;
| 3-5 || Current state of Docs  || Heat Update || Parking Lot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration ===&lt;br /&gt;
* Please confirm your attendance at https://www.eventbrite.com/e/openstack-mid-cycle-meetup-tickets-11663001351&lt;br /&gt;
&lt;br /&gt;
=== Key Signing Party ===&lt;br /&gt;
&lt;br /&gt;
If there is interest, we will conduct a Key Signing Party&lt;br /&gt;
More details at: https://wiki.openstack.org/wiki/OpenPGP_Web_of_Trust/Trove_Icehouse_Sprint&lt;br /&gt;
&lt;br /&gt;
=== Registration ===&lt;br /&gt;
** Please confirm your attendance ASAP at [https://trove-midcycle-meetup-2014.eventbrite.com]&lt;br /&gt;
&lt;br /&gt;
=== Hotels === &lt;br /&gt;
Hotels close to the event (closest on the top of the list). &lt;br /&gt;
&lt;br /&gt;
Cambridge Marriott, 50 Broadway, Cambridge [http://www.marriott.com/hotels/travel/boscb-boston-marriott-cambridge/] &lt;br /&gt;
&lt;br /&gt;
We have a block of rooms here at $259 per night. The advertised rates are much higher ($324). When booking be sure to ask for the &amp;quot;Tesora&amp;quot; event rate.&lt;br /&gt;
&lt;br /&gt;
There are several other hotels in the neighborhood. If you get a much better deal, please update this page so others can benefit from it.&lt;br /&gt;
&lt;br /&gt;
'''UPDATE: The block is for the mid-cycle meetup as well as people who are attending the Trove event sponsored by Tesora. They'll fill up fast, book quickly. Cambridge is expensive and other options are likely to be a lot more pricey.'''&lt;br /&gt;
&lt;br /&gt;
===  Travel === &lt;br /&gt;
* Recommended airport: BOS, Boston Logan International Airport, Boston, MA&lt;br /&gt;
* Alternate airport: PVD, T.F. Green International Airport, Providence, RI&lt;br /&gt;
* Alternate airport: MHT, Manchester Airport, Manchester, NH&lt;br /&gt;
&lt;br /&gt;
== Things to do ==&lt;br /&gt;
&lt;br /&gt;
Several people from the Tesora team are from the Boston area. Contact any of us.&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60626</id>
		<title>Trove/JunoMidCycleMeetup</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/JunoMidCycleMeetup&amp;diff=60626"/>
				<updated>2014-08-15T15:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Database Program (Trove) - Juno Mid-cycle Meetup =&lt;br /&gt;
&lt;br /&gt;
== What ==&lt;br /&gt;
&lt;br /&gt;
There will be a mid-cycle meetup for ATCs (Active Technical Contributors) to the OpenStack Database program in August, 2014.  &lt;br /&gt;
The final schedule of topics will be determined by those that attend, shortly before the event.&lt;br /&gt;
&lt;br /&gt;
Tesora [http://www.tesora.com] is helping organize this event.&lt;br /&gt;
&lt;br /&gt;
== When ==&lt;br /&gt;
&lt;br /&gt;
3 days, August 20-22, 2014&lt;br /&gt;
&lt;br /&gt;
== Where ==&lt;br /&gt;
&lt;br /&gt;
The MidCycle Meetup will be held at MIT (CSAIL), in Cambridge, MA.&lt;br /&gt;
&lt;br /&gt;
The meetings will be in building 32 [http://whereis.mit.edu/?go=32]&lt;br /&gt;
&lt;br /&gt;
== Event Details ==&lt;br /&gt;
On Tuesday, from 9AM to 5PM, Tesora is organizing an OpenStack Trove Day, a day of events about OpenStack with a focus on Trove. If you are attending the mid-cycle meetup, consider attending this event as well. Contact Amrith (amrith (at) tesora (dot) com, or amrith on IRC) or Doug (doug (at) tesora (dot) com, or dougshelley66 on IRC) for more details&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Wed !! Thr !! Fri&lt;br /&gt;
|-&lt;br /&gt;
| 9-11 || Meets and greets || State of CI and Testing || OpenStack Integration (oslo, ceilometer, etc)&lt;br /&gt;
|-&lt;br /&gt;
| 11-1 || Show and tell - Juno Edition || Replication and Failover || Capabilities&lt;br /&gt;
|-&lt;br /&gt;
| 1-3 || Current state of blueprints || Clustering Next Steps   || UI / Horizon update&lt;br /&gt;
|-&lt;br /&gt;
| 3-5 || Current state of Docs  || Heat Update || Parking Lot&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Registration ===&lt;br /&gt;
** Please confirm your attendance at https://www.eventbrite.com/e/openstack-mid-cycle-meetup-tickets-11663001351&lt;br /&gt;
&lt;br /&gt;
=== Key Signing Party ===&lt;br /&gt;
&lt;br /&gt;
If there is interest, we will conduct a Key Signing Party&lt;br /&gt;
More details at: https://wiki.openstack.org/wiki/OpenPGP_Web_of_Trust/Trove_Icehouse_Sprint&lt;br /&gt;
&lt;br /&gt;
=== Registration ===&lt;br /&gt;
** Please confirm your attendance ASAP at [https://trove-midcycle-meetup-2014.eventbrite.com]&lt;br /&gt;
&lt;br /&gt;
=== Hotels === &lt;br /&gt;
Hotels close to the event (closest on the top of the list). &lt;br /&gt;
&lt;br /&gt;
Cambridge Marriott, 50 Broadway, Cambridge [http://www.marriott.com/hotels/travel/boscb-boston-marriott-cambridge/] &lt;br /&gt;
&lt;br /&gt;
We have a block of rooms here at $259 per night. The advertised rates are much higher ($324). When booking be sure to ask for the &amp;quot;Tesora&amp;quot; event rate.&lt;br /&gt;
&lt;br /&gt;
There are several other hotels in the neighborhood. If you get a much better deal, please update this page so others can benefit from it.&lt;br /&gt;
&lt;br /&gt;
'''UPDATE: The block is for the mid-cycle meetup as well as people who are attending the Trove event sponsored by Tesora. They'll fill up fast, book quickly. Cambridge is expensive and other options are likely to be a lot more pricey.'''&lt;br /&gt;
&lt;br /&gt;
===  Travel === &lt;br /&gt;
* Recommended airport: BOS, Boston Logan International Airport, Boston, MA&lt;br /&gt;
* Alternate airport: PVD, T.F. Green International Airport, Providence, RI&lt;br /&gt;
* Alternate airport: MHT, Manchester Airport, Manchester, NH&lt;br /&gt;
&lt;br /&gt;
== Things to do ==&lt;br /&gt;
&lt;br /&gt;
Several people from the Tesora team are from the Boston area. Contact any of us.&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Replication-And-Clustering-With-Nodes-3&amp;diff=51697</id>
		<title>Trove/Replication-And-Clustering-With-Nodes-3</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Replication-And-Clustering-With-Nodes-3&amp;diff=51697"/>
				<updated>2014-05-08T13:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Example: Cassandra ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To illustrate the approach, Cassandra is used in the examples below. The eccentricities of each Datastore will be explained in their own sections.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Create Cluster ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;cassandra&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.0.6&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
    &amp;quot;flavorRef&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 3,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;BUILD&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;cassandra&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.0.6&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 3,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;ff9d680c-fde3-49c6-a84e-76173b6df39d&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* For Phase One:&lt;br /&gt;
** cluster.nodes{} will not be supported.&lt;br /&gt;
** cluster.nodes[].region will not be returned.&lt;br /&gt;
* For Phase Two:&lt;br /&gt;
** if cluster.allocations{} is not provided, the current region is assumed.&lt;br /&gt;
** cluster.nodes[].region will always be returned.&lt;br /&gt;
* Cassandra-specific fields that are required to construct the initial cluster (num_tokens, endpoint_snitch, seed ip-list, etc.) are to be determined/calculated based on configuration file values and common-sense.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Show Cluster ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;cassandra&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.0.6&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 3,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;ff9d680c-fde3-49c6-a84e-76173b6df39d&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* In Phase One:&lt;br /&gt;
** cluster.nodes[].region will not be returned.&lt;br /&gt;
* Change: instance.volume.used, instance.ip[], and instance.hostname will never be returned&lt;br /&gt;
** It's possible that instance.ip[] can remain if it only returns the seed ips.&lt;br /&gt;
** It's possible that instance.hostname can remain if it's converted to an array and only contains the seed hostnames.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Show Node ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/nodes/416b0b16-ba55-4302-bbd3-ff566032e1c1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;node&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products-1&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;ip&amp;quot;: [&amp;quot;10.0.0.1&amp;quot;],&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;used&amp;quot;: 0.17&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Add Node(s) ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/nodes&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;nodes&amp;quot;: {&lt;br /&gt;
    &amp;quot;num&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;allocations&amp;quot;: [&lt;br /&gt;
      {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
      {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* For Phase One:&lt;br /&gt;
** nodes.num will be the only supported field (nodes.allocations will not)&lt;br /&gt;
* For Phase Two:&lt;br /&gt;
** if nodes.allocations[] is not provided, the region of every existing node must match, otherwise the request is failed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Replace Node ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/action&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;replace_node&amp;quot;: {&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_replace_live_node.html&lt;br /&gt;
* http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_replace_seed_node.html&lt;br /&gt;
* http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_replace_node_t.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remove Node ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/nodes/7f52e4f9-3fa6-4238-ac08-1ce15197329a&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_remove_node_t.html&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example: MongoDB ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Create Cluster ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mongodb&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.4.10&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
    &amp;quot;flavorRef&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 5,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;BUILD&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mongodb&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.4.10&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 5,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;965ef811-7c1d-47fc-89f2-a89dfdd23ef2&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;3642f41c-e8ad-4164-a089-3891bf7f2d2b&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;ff9d680c-fde3-49c6-a84e-76173b6df39d&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Show Cluster ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mongodb&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.4.10&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 5,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;965ef811-7c1d-47fc-89f2-a89dfdd23ef2&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;3642f41c-e8ad-4164-a089-3891bf7f2d2b&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;ff9d680c-fde3-49c6-a84e-76173b6df39d&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Show Node ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/nodes/416b0b16-ba55-4302-bbd3-ff566032e1c1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;node&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products-1&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;ip&amp;quot;: [&amp;quot;10.0.0.1&amp;quot;],&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 2,&lt;br /&gt;
      &amp;quot;used&amp;quot;: 0.17&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Create Arbiter(s) ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998/nodes&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;nodes&amp;quot;: {&lt;br /&gt;
    &amp;quot;num&amp;quot;: 2,&lt;br /&gt;
    &amp;quot;allocations&amp;quot;: [&lt;br /&gt;
      {&amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;arbiter&amp;quot;},&lt;br /&gt;
      {&amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;arbiter&amp;quot;}&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Show Cluster (After Arbiters) ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mongodb&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;2.4.10&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;cluster&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 7,&lt;br /&gt;
      &amp;quot;nodes&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;416b0b16-ba55-4302-bbd3-ff566032e1c1&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;965ef811-7c1d-47fc-89f2-a89dfdd23ef2&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;3642f41c-e8ad-4164-a089-3891bf7f2d2b&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;phx&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;7f52e4f9-3fa6-4238-ac08-1ce15197329a&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;ff9d680c-fde3-49c6-a84e-76173b6df39d&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;slc&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;77032c55-4496-4e35-8c0d-6cd1c18e1a9c&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;arbiter&amp;quot;},&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;1fd054ed-221f-4c99-8d17-570bcff4c1d2&amp;quot;, &amp;quot;region&amp;quot;: &amp;quot;lvs&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;arbiter&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example: MySQL ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Create Master ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
    &amp;quot;flavorRef&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;BUILD&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Create Slave ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products-slave&amp;quot;,&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: &amp;quot;fc318e00-3a6f-4f93-af99-146b44912188&amp;quot;,&lt;br /&gt;
    &amp;quot;flavorRef&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;slave&amp;quot;: {&lt;br /&gt;
      &amp;quot;of&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
      &amp;quot;read_only&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;BUILD&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;061aaf4c-3a57-411e-9df9-2d0f813db859&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;fc318e00-3a6f-4f93-af99-146b44912188&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;slave&amp;quot;: {&lt;br /&gt;
      &amp;quot;of&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
      &amp;quot;read_only&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Show Master ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/dfbbd9ca-b5e1-4028-adb7-f78643e17998&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;b9c8a3f8-7ace-4aea-9908-7b555586d7b6&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;slave&amp;quot;: {&lt;br /&gt;
      &amp;quot;list&amp;quot;: [&lt;br /&gt;
        {&amp;quot;id&amp;quot;: &amp;quot;061aaf4c-3a57-411e-9df9-2d0f813db859&amp;quot;}&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Show Slave ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GET /instances/061aaf4c-3a57-411e-9df9-2d0f813db859&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;instance&amp;quot;: {&lt;br /&gt;
    &amp;quot;status&amp;quot;: &amp;quot;ACTIVE&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;: &amp;quot;061aaf4c-3a57-411e-9df9-2d0f813db859&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;products&amp;quot;,&lt;br /&gt;
    &amp;quot;created&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;updated&amp;quot;: &amp;quot;2014-04-25T20:19:23&amp;quot;,&lt;br /&gt;
    &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    &amp;quot;datastore&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;mysql&amp;quot;,&lt;br /&gt;
      &amp;quot;version&amp;quot;: &amp;quot;5.5&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;configuration&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;fc318e00-3a6f-4f93-af99-146b44912188&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;flavor&amp;quot;: {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;7&amp;quot;,&lt;br /&gt;
      &amp;quot;links&amp;quot;: [{...}],&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;volume&amp;quot;: {&lt;br /&gt;
      &amp;quot;size&amp;quot;: 1&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;slave&amp;quot;: {&lt;br /&gt;
      &amp;quot;of&amp;quot;: &amp;quot;dfbbd9ca-b5e1-4028-adb7-f78643e17998&amp;quot;,&lt;br /&gt;
      &amp;quot;read_only&amp;quot;: true&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Promote (Detach) Slave ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
POST /instances/061aaf4c-3a57-411e-9df9-2d0f813db859/action&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;promote&amp;quot;: {}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== Delete Slave ====&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE /instances/061aaf4c-3a57-411e-9df9-2d0f813db859&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
HTTP 202 (Empty Body)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Data Model Changes ==&lt;br /&gt;
=== Nodes Table ===&lt;br /&gt;
Create a new 'nodes' Table:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CREATE TABLE &amp;quot;nodes&amp;quot; (&lt;br /&gt;
  &amp;quot;id&amp;quot; varchar(36) NOT NULL,&lt;br /&gt;
  &amp;quot;instance_id&amp;quot; varchar(36) NOT NULL,&lt;br /&gt;
  &amp;quot;created&amp;quot; datetime DEFAULT NULL,&lt;br /&gt;
  &amp;quot;updated&amp;quot; datetime DEFAULT NULL,&lt;br /&gt;
  &amp;quot;name&amp;quot; varchar(255) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;hostname&amp;quot; varchar(255) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;compute_instance_id&amp;quot; varchar(36) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;task_id&amp;quot; int(11) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;task_description&amp;quot; varchar(32) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;task_start_time&amp;quot; datetime DEFAULT NULL,&lt;br /&gt;
  &amp;quot;volume_id&amp;quot; varchar(36) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;flavor_id&amp;quot; int(11) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;volume_size&amp;quot; int(11) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;tenant_id&amp;quot; varchar(36) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;server_status&amp;quot; varchar(64) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;deleted&amp;quot; tinyint(1) DEFAULT NULL,&lt;br /&gt;
  &amp;quot;deleted_at&amp;quot; datetime DEFAULT NULL,&lt;br /&gt;
  &amp;quot;datastore_version_id&amp;quot; varchar(36) NOT NULL,&lt;br /&gt;
  &amp;quot;configuration_id&amp;quot; varchar(36) DEFAULT NULL,&lt;br /&gt;
  PRIMARY KEY (&amp;quot;id&amp;quot;),&lt;br /&gt;
  KEY &amp;quot;instance_id&amp;quot; (&amp;quot;instance_id&amp;quot;),&lt;br /&gt;
  KEY &amp;quot;datastore_version_id&amp;quot; (&amp;quot;datastore_version_id&amp;quot;),&lt;br /&gt;
  KEY &amp;quot;configuration_id&amp;quot; (&amp;quot;configuration_id&amp;quot;),&lt;br /&gt;
  KEY &amp;quot;instances_tenant_id&amp;quot; (&amp;quot;tenant_id&amp;quot;),&lt;br /&gt;
  KEY &amp;quot;instances_deleted&amp;quot; (&amp;quot;deleted&amp;quot;),&lt;br /&gt;
  CONSTRAINT &amp;quot;nodes_ibfk_3&amp;quot; FOREIGN KEY (&amp;quot;instance_id&amp;quot;) REFERENCES &amp;quot;instances&amp;quot; (&amp;quot;id&amp;quot;),&lt;br /&gt;
  CONSTRAINT &amp;quot;nodes_ibfk_2&amp;quot; FOREIGN KEY (&amp;quot;configuration_id&amp;quot;) REFERENCES &amp;quot;configurations&amp;quot; (&amp;quot;id&amp;quot;),&lt;br /&gt;
  CONSTRAINT &amp;quot;nodes_ibfk_1&amp;quot; FOREIGN KEY (&amp;quot;datastore_version_id&amp;quot;) REFERENCES &amp;quot;datastore_versions&amp;quot; (&amp;quot;id&amp;quot;)&lt;br /&gt;
) ENGINE=InnoDB DEFAULT CHARSET=utf8;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
aka the same table as instances, except:&lt;br /&gt;
* addition of: &amp;quot;instance_id&amp;quot; varchar(36) NOT NULL&lt;br /&gt;
* addition of: KEY &amp;quot;instance_id&amp;quot; (&amp;quot;instance_id&amp;quot;)&lt;br /&gt;
* addition of: CONSTRAINT &amp;quot;instances_ibfk_3&amp;quot; FOREIGN KEY (&amp;quot;instance_id&amp;quot;) REFERENCES &amp;quot;instances&amp;quot; (&amp;quot;id&amp;quot;),&lt;br /&gt;
* TODO: changing of 'DEFAULT NULL' to 'NOT NULL' whenever possible (ex: things like CREATED should never be NULL)&lt;br /&gt;
* TODO: addition of removal of indexes as deemed necessary&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Alter Instances Table ===&lt;br /&gt;
Add slave_of Column to Instances Table (+ Constraint + Index):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER TABLE nodes ADD COLUMN slave_of VARCHAR(36) DEFAULT NULL;&lt;br /&gt;
KEY &amp;quot;slave_of&amp;quot; (&amp;quot;slave_of&amp;quot;),&lt;br /&gt;
CONSTRAINT &amp;quot;instances_ibfk_3&amp;quot; FOREIGN KEY (&amp;quot;slave_of&amp;quot;) REFERENCES &amp;quot;instances&amp;quot; (&amp;quot;id&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Alter Other Tables ===&lt;br /&gt;
Add node_id column to the following tables:&lt;br /&gt;
* agent_heartbeats&lt;br /&gt;
* backups&lt;br /&gt;
* conductor_lastseen&lt;br /&gt;
* root_enabled_history&lt;br /&gt;
* security_group_instance_associations&lt;br /&gt;
* service_statuses&lt;br /&gt;
* usage_events&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER TABLE &amp;lt;table&amp;gt; ADD COLUMN node_id VARCHAR(36) DEFAULT NULL;&lt;br /&gt;
KEY &amp;quot;node_id&amp;quot; (&amp;quot;node_id&amp;quot;),&lt;br /&gt;
CONSTRAINT &amp;quot;&amp;lt;table&amp;gt;_ibfk_&amp;lt;num&amp;gt;&amp;quot; FOREIGN KEY (&amp;quot;node_id&amp;quot;) REFERENCES &amp;quot;nodes&amp;quot; (&amp;quot;id&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== TaskManager ==&lt;br /&gt;
&lt;br /&gt;
* add node_id to /etc/guest_info (if it's a node in a cluster). guest_id remains as-is.&lt;br /&gt;
* for-loop create each node.&lt;br /&gt;
* poll until all nodes are active.&lt;br /&gt;
* for each node: use trove/nova to get ip/hostname&lt;br /&gt;
* for couchbase:&lt;br /&gt;
** send ip/hostname list via rpc cast to guest&lt;br /&gt;
* for cassandra:&lt;br /&gt;
** send seed ip list via rpc cast to guest seed nodes, one by one (polling on REBOOT =&amp;gt; ACTIVE), then to rest of nodes.&lt;br /&gt;
* for mongodb:&lt;br /&gt;
** send ip/hostname list via rpc cast to guest that is the db.isMaster()&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Guest ==&lt;br /&gt;
&lt;br /&gt;
* update heartbeat payload ( heartbeat(guest_id, payload, sent) ) from {&amp;quot;service_status&amp;quot;: &amp;quot;&amp;lt;status&amp;gt;&amp;quot;} to {&amp;quot;service_status&amp;quot;: &amp;quot;&amp;lt;status&amp;gt;&amp;quot;, &amp;quot;node_id&amp;quot;: &amp;quot;&amp;lt;node-id&amp;gt;&amp;quot;}&lt;br /&gt;
* add method to each datastore guest manager for handling ip/hostname list&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conductor ==&lt;br /&gt;
&lt;br /&gt;
* update heartbeat logic to update the nodes table (node status)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Capabilities ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A capability might be supported for a datastore-version for standalone instances, but not for clusters.&lt;br /&gt;
Therefore, the capability tables must be amended to include a cluster-enabled flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER TABLE capabilities ADD COLUMN enabled_cluster TINYINT(1) DEFAULT NULL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ALTER TABLE capability_overrides ADD COLUMN enabled_cluster TINYINT(1) DEFAULT NULL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following capabilities should have enabled_cluster set to false for the first iteration of clusters:&lt;br /&gt;
* backup-create + list-instance&lt;br /&gt;
* configuration-attach + detach + instances&lt;br /&gt;
* resize-&amp;lt;all&amp;gt;&lt;br /&gt;
* database-&amp;lt;all&amp;gt;&lt;br /&gt;
* root-&amp;lt;all&amp;gt;&lt;br /&gt;
* secgroup-&amp;lt;all&amp;gt;&lt;br /&gt;
* user-&amp;lt;all&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Configuration Groups ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Introduce read_only and hidden Parameters ===&lt;br /&gt;
Need to introduce two additional attributes for configuration group parameters: read_only and hidden.&lt;br /&gt;
* read_only fields include cluster_name, num_tokens, seed_provider, seeds, endpoint_snitch (cassandra) + replSet (mongodb) + server_id, log_bin (mysql).&lt;br /&gt;
* depending on the provider, some of the read_only fields should also be hidden from the user on a configuration-show.&lt;br /&gt;
* once read_only + hidden are available, a parallel effort should move configuration-default to configurations-show if a configuration-group is attached.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Auto-Create and Attach ===&lt;br /&gt;
* cassandra &amp;amp; mongodb need to have configuration-groups automatically created and attached to each node (for cluster_name, replset, etc.) during provisioning.&lt;br /&gt;
* unique configuration-group per node.&lt;br /&gt;
* auto-created+attached configuration-groups need to not be detachable from the instance.&lt;br /&gt;
* dependency: configuration-group support for mongodb + cassandra&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Feedback ==&lt;br /&gt;
&lt;br /&gt;
==== Create Slave ====&lt;br /&gt;
&lt;br /&gt;
*glucas: Replication will require capturing a snapshot of the master's state and passing that to the slave. It would be preferable to create multiple slaves from a single snapshot and then clean up, rather than repeating the snapshot process multiple times. For that reason we propose a 'replicate' action that can create N slaves from an existing master in one call. I believe this approach works with the schema changes proposed here, i.e. adding the ''slave_of'' reference to the instance table.&lt;br /&gt;
&lt;br /&gt;
==== Capabilities ====&lt;br /&gt;
&lt;br /&gt;
*glucas: We should use capabilities to indicate whether a datastore supports replication (and potentially read-only vs. read-write replication). In the first iteration, replication will not be supported for clusters.&lt;br /&gt;
&lt;br /&gt;
==== Configuration Groups ====&lt;br /&gt;
*dougshelley66: What if the end user wants to specify some configuration parameters for nodes or replicas? It appears (from the description above) that each node will have an auto generated group attached. Given an instance can only have one config group, this would allow the user to specify one?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=49675</id>
		<title>Meetings/TroveMeeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=49675"/>
				<updated>2014-04-22T22:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Trove Team Meeting =&lt;br /&gt;
&lt;br /&gt;
We have weekly team meetings on Wednesdays at 18:00 UTC in #openstack-meeting-alt&lt;br /&gt;
&lt;br /&gt;
Want to add an agenda item? Please append your item to the upcoming weekly agenda while keeping in mind:&lt;br /&gt;
&lt;br /&gt;
An agenda item should have a clearly defined objective.&lt;br /&gt;
 &lt;br /&gt;
* Good: Review #xxxxx has comments on foobar.py from multiple folks and there seems to be a lack of consensus on how to solve problem ‘y’. Let’s quickly rehash the merits of both approaches in 2-5 minutes and call for a vote. Goal: choose an approach and move forward on implementation.&lt;br /&gt;
* Bad: Discuss blueprint ‘xyz’&lt;br /&gt;
* Bad: Revisit blueprint ‘abc’ that we talked about last week to get answers on remaining disagreements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When referring to previous conversations or competing viewpoints, be sure to summarize them.&lt;br /&gt;
&lt;br /&gt;
Meeting Chat Logs: http://eavesdrop.openstack.org/meetings/trove/2014/&lt;br /&gt;
&lt;br /&gt;
Meeting Agenda History: https://wiki.openstack.org/wiki/Trove/MeetingAgendaHistory&lt;br /&gt;
&lt;br /&gt;
=== Agenda for Weekly Trove Team Meeting - April 23  ===&lt;br /&gt;
* Juno Mid-cycle Meetup - discuss venue/timing proposal and confirm&lt;br /&gt;
&lt;br /&gt;
= Weekly Trove Blueprint Meeting =&lt;br /&gt;
&lt;br /&gt;
For those interested, we have blueprint meetings in #openstack-trove weekly, Mondays at 18:00 UTC. Feel free to add items in the agenda below.&lt;br /&gt;
&lt;br /&gt;
=== Agenda for Weekly Trove Blueprint Meeting - April 28 ===&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=46895</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=46895"/>
				<updated>2014-03-28T14:16:10Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* Use Case Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== Use Case Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen as the use-cases that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the slave such that the master already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# The health of a slave will be monitaorable&lt;br /&gt;
&lt;br /&gt;
# (When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master) ''(not needed for v1; to be addressed later -SlickNik)''&lt;br /&gt;
# (All slaves should be in the same zone. (is this necessary or desired?) ''(not needed for v1; to be addressed later -SlickNik)''&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Swift&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
Phase I implementation, targeted for the Juno release, will implement Use Case A core functionality and the MySql datastore replication support. Replication support for other datastores beyond MySQL are beyond the scope of this blueprint and will be covered elsewhere.&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
This change would impact all components of Trove.&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
There should be no changes to configuration files required.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
The addition of a replication feature would required changes to the trove command and corresponding APIs.  At a minimum, there would need to be APIs to add a slave to a master, and to remove a slave from a master.  Additionally, there may be changes to how a potential master site is created.&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
There would be API changes at every level to support replication.&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;br /&gt;
&lt;br /&gt;
The guest agent would require support for the new replication operations, but backward compatibility should be maintained.&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=44857</id>
		<title>Meetings/TroveMeeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Meetings/TroveMeeting&amp;diff=44857"/>
				<updated>2014-03-07T16:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Weekly Trove (DBaaS) team meeting =&lt;br /&gt;
&lt;br /&gt;
For those interested, we have meetings in #openstack-meeting-alt Weekly, Wednesdays at 18:00 UTC. Feel free to add items in the agenda below.&lt;br /&gt;
&lt;br /&gt;
Logs available: http://eavesdrop.openstack.org/meetings/trove/2014/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Agenda for todays meeting ==&lt;br /&gt;
* [https://wiki.openstack.org/w/index.php?title=Trove-Guest-Agent-Upgrades Guest Agent Upgrades Wiki]&lt;br /&gt;
* Update from the Clustering meeting / details of vote&lt;br /&gt;
&lt;br /&gt;
== Agenda for Mar. 12 ==&lt;br /&gt;
* Trove Guest Agent Upgrades bp follow up&lt;br /&gt;
** https://blueprints.launchpad.net/trove/+spec/upgrade-guestagent&lt;br /&gt;
* DBLog feature&lt;br /&gt;
**https://blueprints.launchpad.net/trove/+spec/dbinstance-log&lt;br /&gt;
*Point in time recovery&lt;br /&gt;
**https://blueprints.launchpad.net/trove/+spec/point-in-tyme-recovery&lt;br /&gt;
**https://blueprints.launchpad.net/trove/+spec/mysql-point-in-time-recovery&lt;br /&gt;
*Additional validation for the restore process&lt;br /&gt;
**https://blueprints.launchpad.net/trove/+spec/datastore-type-version-to-backp-model&lt;br /&gt;
* Replication version 1&lt;br /&gt;
**https://blueprints.launchpad.net/trove/+spec/replication-v1&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44281</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44281"/>
				<updated>2014-03-05T00:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== Use Case Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen as the use-cases that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the slave such that the master already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
This blueprint will endeavour to specify implementation against the following requirements:&lt;br /&gt;
* MySQL only&lt;br /&gt;
* Use Case Requirements A.&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44280</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44280"/>
				<updated>2014-03-05T00:28:39Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* High Level Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== Use Case Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen as the use-cases that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44277</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44277"/>
				<updated>2014-03-05T00:16:21Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* High Level Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== High Level Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen as the use-cases that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44276</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44276"/>
				<updated>2014-03-05T00:15:30Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* High Level Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== High Level Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen at the overall requirements that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44275</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44275"/>
				<updated>2014-03-05T00:15:16Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* High Level Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== High Level Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen at the overall requirements that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44274</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44274"/>
				<updated>2014-03-05T00:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* High Level Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== High Level Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen at the overall requirements that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44273</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44273"/>
				<updated>2014-03-05T00:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== High Level Requirements ==&lt;br /&gt;
While the specific details of each datastore need to be investigated against this list, these are seen at the overall requirements that would motivate the replication feature:&lt;br /&gt;
&lt;br /&gt;
A. Read Replicas (Slaves)&lt;br /&gt;
# The master can exist before the master such that it already contains data&lt;br /&gt;
# N Slaves for one master&lt;br /&gt;
# Slaves can be marked read-only (probably by default)&lt;br /&gt;
# When master fails, a slave can be chosen to be promoted to new master, with other slaves switched to follow new master&lt;br /&gt;
# A slave can be detached from &amp;quot;replication set&amp;quot; to act as independent site&lt;br /&gt;
# A pre-existing non-replication site can become the master of a new &amp;quot;replication set&amp;quot;&lt;br /&gt;
# All slaves should be in the same zone. (is this necessary or desired?)&lt;br /&gt;
&lt;br /&gt;
B. MultiZone Disaster Recovery&lt;br /&gt;
&lt;br /&gt;
# A master in one zone is mirrored by a slave in a different zone&lt;br /&gt;
# Some mechanism should exist where cloud admin can set up &amp;quot;zone configuration&amp;quot; so that the user can simply select &amp;quot;MultiZone DR&amp;quot; and Trove will know where to put both the master and the slave&lt;br /&gt;
# Should be able to restore master from slave, either directly or by making backup stored in Glance&lt;br /&gt;
# Should be able to &amp;quot;click the switch&amp;quot; on an already running mysql instance&lt;br /&gt;
&lt;br /&gt;
C. Single Zone Failover&lt;br /&gt;
&lt;br /&gt;
# Implements master-master replication between 2 instances in the same zone&lt;br /&gt;
# Can be set up on pre-existing instance&lt;br /&gt;
# Should be able to switch &amp;quot;active master&amp;quot;, i.e., the site to which data is being written (other site could be marked read-only)&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44244</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44244"/>
				<updated>2014-03-04T22:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* Justification/Benefits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
Most of the datastores currently supported by Trove have replication capabilities to fulfill various use cases such as:&lt;br /&gt;
* scale out via read replicas&lt;br /&gt;
* operational recovery (aka failover)&lt;br /&gt;
* offline backup&lt;br /&gt;
&lt;br /&gt;
In order to be production ready, Trove needs to support easy configuration and management of these use cases. Today Amazon RDS fulfills the first use cases and part of the second use case for MySQL.&lt;br /&gt;
&lt;br /&gt;
Over time all of these requirements should be evaluated; the goal of this blueprint is to focus on read replicas for scale out and target the MySQL datastore. It is expected that implementation of this scoping will occur for other datastores and then further work can be scoped out to meet the remaining requirements.&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44242</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44242"/>
				<updated>2014-03-04T22:07:13Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Providing support for the various replication use cases is critical for use of Trove in production. This will describe the various use cases and related requirements and then propose a scoping for an initial V1 implementation for MySQL.&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
* What is the driving force behind this change?  &lt;br /&gt;
* Does it allow for great flexibility? Stability? Security?&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44241</id>
		<title>Trove/Blueprints/Trove-v1-MySQL-Replication</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/Blueprints/Trove-v1-MySQL-Replication&amp;diff=44241"/>
				<updated>2014-03-04T22:05:17Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: Created page with &amp;quot;== Description == Describe the purpose of the enhancement  == Justification/Benefits == * What is the driving force behind this change?   * Does it allow for great flexibility...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Describe the purpose of the enhancement&lt;br /&gt;
&lt;br /&gt;
== Justification/Benefits ==&lt;br /&gt;
* What is the driving force behind this change?  &lt;br /&gt;
* Does it allow for great flexibility? Stability? Security?&lt;br /&gt;
&lt;br /&gt;
== Impacts ==&lt;br /&gt;
&lt;br /&gt;
=== Configuration === &lt;br /&gt;
* Does this impact any configuration files? If so, which ones?&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* Does this impact any existing tables?  If so, which ones?&lt;br /&gt;
* Are the changes forward and backward compatible? &lt;br /&gt;
* Be sure to include the expected migration process&lt;br /&gt;
&lt;br /&gt;
=== Public API ===&lt;br /&gt;
* Does this change any API that an end-user has access to?&lt;br /&gt;
* Are there any exceptions in terms of consistency with other APIs?&lt;br /&gt;
&lt;br /&gt;
=== Internal API ===&lt;br /&gt;
* Does this change any internal messages between API and Task Manager or Task Manager to Guest&lt;br /&gt;
&lt;br /&gt;
=== Guest Agent ===&lt;br /&gt;
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=OpenPGP_Web_of_Trust/Trove_Icehouse_Sprint&amp;diff=42571</id>
		<title>OpenPGP Web of Trust/Trove Icehouse Sprint</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpenPGP_Web_of_Trust/Trove_Icehouse_Sprint&amp;diff=42571"/>
				<updated>2014-02-17T20:20:51Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: /* Trove Mid-Cycle Icehouse Sprint Key Signing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Trove Mid-Cycle Icehouse Sprint Key Signing =&lt;br /&gt;
If you plan to join us, please bring one or more forms of photo identification, and make sure the real name on your key corresponds to the name on your ID. If you want additional tips, see the [[OpenPGP Web of Trust#Key Signing Process|parent article]].&lt;br /&gt;
&lt;br /&gt;
If you want to bring cards or pieces of paper with your name and key fingerprint then feel free, but if you add your information to the table below we will do our best to bring paper copies (at least enough for the people who are listed here) for use as a checklist so that you won't need to use your computer. Please bring extra pens or pencils however, if you can, since there may not be many of those to go around.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ People participating in identification exchange&lt;br /&gt;
! Real Name !! IRC Nick !! Key Fingerprint !! Preferred E-mail Address&lt;br /&gt;
|-&lt;br /&gt;
| Nikhil Manchanda || slicknik || 5674 7211 71F8 CD59 F285  353D 9692 757E BCD3 D66C || nikhil@manchanda.me&lt;br /&gt;
|-&lt;br /&gt;
| Steve Leon || esmute || 02F1 F2AE C17D 66D2 1B1B  B75C EF3B 2AB9 FFF4 F9EA || steve.leon@hp.com&lt;br /&gt;
|-&lt;br /&gt;
| Justin Hopper || juice || 7463 498F 7D3B 7DB3 FFBF 4946 C02F 046F '''EA23 8CF3''' || justin.hopper@me.com&lt;br /&gt;
|-&lt;br /&gt;
|Michael Basnight||hub_cap||9D60 7133 8AFE 4FE5 45D9  625E 9E86 DD8C 3DB5 897B||mbasnight@gmail.com&lt;br /&gt;
|-&lt;br /&gt;
|Craig Vyvial||cp16net||8975 C9C2 E879 309A 771B  7C01 046B FABA F4BD 6CC2||cp16net@gmail.com&lt;br /&gt;
|-&lt;br /&gt;
|Dan Nguyen||esp||D9D4 F72E 82FC EFCE 1923  B140 9163 F056 AE67 298E||dan.nguyens.mail@gmail.com&lt;br /&gt;
|-&lt;br /&gt;
|Daniel Salinas||imsplitbit||54C5 515E 71FB 1533 2332  F115 78EE B83C 964B C17C||imsplitbit@gmail.com&lt;br /&gt;
|-&lt;br /&gt;
|Andrew Bramley||abramley||7082 00CC 9C6F 7523 C3B1 2CB4 9E67 CA34 2DAA 044F||andrew@tesora.com&lt;br /&gt;
|-&lt;br /&gt;
|Amrith Kumar||amrith||0D22 859E BE93 63F5 9DD6  35BC 5E48 849A 9D21 A29B||amrith@tesora.com&lt;br /&gt;
|-&lt;br /&gt;
|Paul Marshall||pdmars||2DCA A0AB 6DEC A717 FC80  A6D1 9F08 2613 795C B691||paul.marshall@rackspace.com&lt;br /&gt;
|-&lt;br /&gt;
|Vipul Sabhaya||vipul||B7FA 44B3 32C7 1A3A F606 1ED7 A2C7 95BC 02AE 77A2 ||vipul.sabhaya@hp.com&lt;br /&gt;
|-&lt;br /&gt;
|Doug Shelley||dougshelley66||95FB 1D3D 900D 67F9 FDA9  C378 6B34 FD08 BA22 5C73||doug@tesora.com&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=Trove/DevelopingOnEC2&amp;diff=39405</id>
		<title>Trove/DevelopingOnEC2</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=Trove/DevelopingOnEC2&amp;diff=39405"/>
				<updated>2014-01-08T22:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;Doug Shelley: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stay Tuned!&lt;/div&gt;</summary>
		<author><name>Doug Shelley</name></author>	</entry>

	</feed>