Merge lp://staging/~openstack-charmers/charms/precise/mysql/ha-support into lp://staging/charms/mysql

Proposed by James Page
Status: Merged
Merged at revision: 97
Proposed branch: lp://staging/~openstack-charmers/charms/precise/mysql/ha-support
Merge into: lp://staging/charms/mysql
Diff against target: 1376 lines (+1044/-149)
19 files modified
config.yaml (+36/-0)
hooks/common.py (+2/-2)
hooks/config-changed (+1/-1)
hooks/ha_relations.py (+146/-0)
hooks/install (+2/-1)
hooks/lib/ceph_utils.py (+256/-0)
hooks/lib/cluster_utils.py (+130/-0)
hooks/lib/utils.py (+283/-0)
hooks/master-relation-changed (+1/-1)
hooks/monitors.common.bash (+1/-1)
hooks/shared-db-relations (+0/-137)
hooks/shared_db_relations.py (+139/-0)
hooks/slave-relation-broken (+2/-2)
hooks/slave-relation-changed (+2/-2)
hooks/upgrade-charm (+17/-1)
metadata.yaml (+8/-0)
revision (+1/-1)
scripts/add_to_cluster (+13/-0)
scripts/remove_from_cluster (+4/-0)
To merge this branch: bzr merge lp://staging/~openstack-charmers/charms/precise/mysql/ha-support
Reviewer Review Type Date Requested Status
Marco Ceppi (community) Approve
charmers Pending
Review via email: mp+165059@code.staging.launchpad.net

Description of the change

This branch constitutes the work done in the last 6 months to enable HA support for MySQL to support OpenStack HA.

To post a comment you must log in.
Revision history for this message
Marco Ceppi (marcoceppi) wrote :

Reviewing now

Revision history for this message
Marco Ceppi (marcoceppi) wrote :

Hi James, thanks for the work on this. I've run it through it's paces and everything seems to work with regards to upgrading from current store version, so fantastic job on that.

My only question is with regards to rbd-name, shouldn't this be unique per MySQL deployment? I can foresee the probability of users stomping on each other trying to deploy two separate MySQL services against Ceph and not changing the rbd-name during deployment. Would it not be better instead to just use the SERVICE_NAME when creating the volume? Is there a use case where you'd need to manually set it that I'm not seeing?

Outside of that question, this work looks fantastic! I look forward to your response so I can get this merged in quickly :)

review: Needs Information
Revision history for this message
Andres Rodriguez (andreserl) wrote :

Hi Marco,

To answer your question, no, it is not required to be unique per MySQL deployment. So the way this works is that SERVICE_NAME creates a pool on which the rbd-name (which is used to create the image) is created. So for example I deploy 3 mysql units against 1 ceph for HA (juju deploy mysql -n) they all need access to the same image (hence the same pool).

Now, however, if I deploy X mysql services (with various units) as mysqlX, mysqlY, etc (juju deploy mysql mysqlX && juju deploy mysql mysqlY) against 1 ceph, each mysqlX service will have to access to a corresponding 'pool' where the image rbd-name is created. So there would be 2 pools of images 'mysqlx', 'mysqly' each with an image called 'mysql1'.

Hope this helps.

Regards.

Revision history for this message
Marco Ceppi (marcoceppi) wrote :

Hi Andres, thanks for the clarification. I was just worried about this line:

> If the image name exists in Ceph, it will be re-used and the data will be overwritten.

In the config.yaml. Based on your feedback though it appears sharing an rbd pool between multiple MySQL services is something that would be a use case (which makes sense as a config option). Consider this merged! Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches