)]}'
{"doc/ha-guide/source/intro-ha-arch-keepalived.rst":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"9500becff1533e7f952024e1059cf917ae0698f6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"The Keepalived Architecture"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"High availability strategies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_fb768da2","line":2,"updated":"2015-11-20 06:00:04.000000000","message":"for all titles: sentence style capitalization","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":9,"context_line":"strategies used to achieve high availability for the OpenStack"},{"line_number":10,"context_line":"services:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. image:: keepalived-arch.jpg"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depending on the method used to communicate with the service, the"},{"line_number":15,"context_line":"following availability strategies will be followed:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_79901096","line":12,"updated":"2015-11-23 12:30:04.000000000","message":"I suggest placing the images into a folder named \"figures\" and using the following markup to be consistent with other guides:\n\n.. figure:: /figures/keepalived-arch.jpg\n   :width: 100%\n\nPlease see: http://docs.openstack.org/contributor-guide/rst-conv/figures.html","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"9500becff1533e7f952024e1059cf917ae0698f6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"-   Keepalived, for the HAProxy instances."},{"line_number":18,"context_line":"-   Access via an HAProxy virtual IP, for services accessed via a TCP socket than can be load balanced (e.g. httpd)."},{"line_number":19,"context_line":"-   Built-in application clustering, when available from the application (e.g. Galera) ."},{"line_number":20,"context_line":"-   Starting up one instance of the service on several controller nodes, when they can coexist and coordinate by other means (e.g. RPC, in the case of nova-conductor)."},{"line_number":21,"context_line":"-   No high availability, when the service can only work in active/passive mode."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"There are known issues with cinder-volume that recommend setting it as"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_db6f09c2","line":20,"updated":"2015-11-20 06:00:04.000000000","message":"don\u0027t use e.g. - and avoid the bracket()","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":21,"context_line":"-   No high availability, when the service can only work in active/passive mode."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"There are known issues with cinder-volume that recommend setting it as"},{"line_number":24,"context_line":"active-passive for now, see"},{"line_number":25,"context_line":"`\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support\u003e`__"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"While there will be multiple Neutron LBaaS agents running, each agent"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_39e9281b","line":24,"updated":"2015-11-23 12:30:04.000000000","message":"see:","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"There are known issues with cinder-volume that recommend setting it as"},{"line_number":24,"context_line":"active-passive for now, see"},{"line_number":25,"context_line":"`\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support\u003e`__"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"While there will be multiple Neutron LBaaS agents running, each agent"},{"line_number":28,"context_line":"will manage a set of load balancers, that cannot be failed over to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_995054d6","line":25,"updated":"2015-11-23 12:30:04.000000000","message":"I believe one _ is enough.","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"   There are currently concerns over the cinder-volume service ability"},{"line_number":51,"context_line":"   to run as a fully active-active service. During the Mitaka"},{"line_number":52,"context_line":"   timeframe, this is being worked on, see"},{"line_number":53,"context_line":"   `\u003chttps://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support\u003e`__."},{"line_number":54,"context_line":"   Thus, cinder-volume will only be running on one of the controller"},{"line_number":55,"context_line":"   nodes, even if it will be configured on all nodes. In case of a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_19cd44b7","line":52,"updated":"2015-11-23 12:30:04.000000000","message":"see:","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If you find any or all of these limitations concerning, you are"},{"line_number":88,"context_line":"encouraged to refer to the `Pacemaker HA architectire \u003cintrol-ha-design-pacemaker.html\u003e`"},{"line_number":89,"context_line":"instead."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_d946dc20","line":88,"updated":"2015-11-23 12:30:04.000000000","message":"`Pacemaker HA architectire \u003cintrol-ha-design-pacemaker.html\u003e`_.","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"following availability strategies will be followed:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"-   Keepalived, for the HAProxy instances."},{"line_number":19,"context_line":"-   Access via an HAProxy virtual IP, for services such as httpd that"},{"line_number":20,"context_line":"    are accessed via a TCP socket that can be load balanced"},{"line_number":21,"context_line":"-   Built-in application clustering, when available from the application."},{"line_number":22,"context_line":"    Galera is one example of this."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_4705a943","line":19,"updated":"2015-12-14 10:57:16.000000000","message":"httpd --\u003e HTTPd","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"active-passive for now, see:"},{"line_number":31,"context_line":"https://blueprints.launchpad.net/cinder/+spec/cinder-volume-active-active-support"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"While there will be multiple Neutron LBaaS agents running, each agent"},{"line_number":34,"context_line":"will manage a set of load balancers, that cannot be failed over to"},{"line_number":35,"context_line":"another node."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_677545c9","line":33,"updated":"2015-12-14 10:57:16.000000000","message":"Neutron --\u003e neutron","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"This architecture has some inherent limitations that should be kept in"},{"line_number":41,"context_line":"mind during deployment and daily operations."},{"line_number":42,"context_line":"The following sections describe those limitations."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"#. Keepalived and network partitions"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_873951f4","line":42,"updated":"2015-12-14 10:57:16.000000000","message":"those --\u003e these","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"#. Neutron-lbaas-agent as a single point of failure"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"   The current design of the Neutron LBaaS agent using the HAProxy"},{"line_number":70,"context_line":"   driver does not allow high availability for the tenant load"},{"line_number":71,"context_line":"   balancers. The neutron-lbaas-agent service will be enabled and"},{"line_number":72,"context_line":"   running on all controllers, allowing for load balancers to be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_4216f74c","line":69,"updated":"2015-12-14 10:57:16.000000000","message":"neutron","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"#. Manual recovery after a full cluster restart"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"   Some support services used by RDO / RHEL OSP use their own form of"},{"line_number":89,"context_line":"   application clustering. Usually, these services maintain a cluster"},{"line_number":90,"context_line":"   quorum, that may be lost in case of a simultaneous restart of all"},{"line_number":91,"context_line":"   cluster nodes, e.g. during a power outage. Each service will"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_0d233fbe","line":88,"updated":"2015-12-14 10:57:16.000000000","message":"RDO or RHEL OSP","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   Some support services used by RDO / RHEL OSP use their own form of"},{"line_number":89,"context_line":"   application clustering. Usually, these services maintain a cluster"},{"line_number":90,"context_line":"   quorum, that may be lost in case of a simultaneous restart of all"},{"line_number":91,"context_line":"   cluster nodes, e.g. during a power outage. Each service will"},{"line_number":92,"context_line":"   require its own procedure to regain quorum."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"If you find any or all of these limitations concerning, you are"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_ed0ef339","line":91,"updated":"2015-12-14 10:57:16.000000000","message":"e.g. --\u003e for example","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"}],"doc/ha-guide/source/intro-ha-arch-pacemaker.rst":[{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"The Pacemaker Architecture"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"What is a Cluster Manager"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_d4e22101","line":2,"updated":"2015-11-23 12:30:04.000000000","message":"Please use use sentence-style capitalization. See: https://wiki.openstack.org/wiki/Documentation/Markup_conventions#Block_elements","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"9500becff1533e7f952024e1059cf917ae0698f6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"cluster manager:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#.  Awareness of other applications in the stack"},{"line_number":17,"context_line":"    "},{"line_number":18,"context_line":"    While SYS-V init replacements like systemd can provide"},{"line_number":19,"context_line":"    deterministic recovery of a complex stack of services, the"},{"line_number":20,"context_line":"    recovery is limited to one machine and lacks the context of what"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_7b6b7db7","line":17,"updated":"2015-11-20 06:00:04.000000000","message":"Remove empty whitespace","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    It is very important that all members of the system share the same"},{"line_number":36,"context_line":"    view of who their peers are and whether or not they are in the"},{"line_number":37,"context_line":"    majority.  Failure to do this leads very quickly to an internal"},{"line_number":38,"context_line":"    `split-brain \u003chttp://en.wikipedia.org/wiki/Split-brain_(computing)\u003e`_"},{"line_number":39,"context_line":"    state - where different parts of the system are pulling in"},{"line_number":40,"context_line":"    different and incompatioble directions."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_f41f2559","line":37,"updated":"2015-11-23 12:30:04.000000000","message":"Extra space after \"majority\", and as well in lines 46, 57, 68, 78, 86, 90, 100, 154, 161,169, 194.","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"component runs on every node) and **Segregated** (where every"},{"line_number":71,"context_line":"component runs in its own 3+ node cluster)."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Regardless of which flavor you choose, it is recommended that the"},{"line_number":75,"context_line":"clusters contain at least three nodes so that we can take advantage of"},{"line_number":76,"context_line":"`quorum \u003cquorum_\u003e`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_b8426ba9","line":73,"updated":"2015-12-14 10:57:16.000000000","message":"extra line","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Quorum becomes important when a failure causes the cluster to split in"},{"line_number":79,"context_line":"two or more paritions. In this situation, you want the majority to"},{"line_number":80,"context_line":"ensure the minority are truely dead (through fencing) and continue to"},{"line_number":81,"context_line":"host resources. For a two-node cluster, no side has the majority and"},{"line_number":82,"context_line":"you can end up in a situations where both sides fence each other, or"},{"line_number":83,"context_line":"both sides are running the same services - leading to data corruption."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_b8f58b51","line":80,"updated":"2015-12-14 10:57:16.000000000","message":"truely --\u003e truly","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"two or more paritions. In this situation, you want the majority to"},{"line_number":80,"context_line":"ensure the minority are truely dead (through fencing) and continue to"},{"line_number":81,"context_line":"host resources. For a two-node cluster, no side has the majority and"},{"line_number":82,"context_line":"you can end up in a situations where both sides fence each other, or"},{"line_number":83,"context_line":"both sides are running the same services - leading to data corruption."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Clusters with an even number of hosts suffer from similar issues - a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_78c163e3","line":82,"updated":"2015-12-14 10:57:16.000000000","message":"in a sutuation","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"of cluster members when scaling up."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"You can have up to 16 cluster members (this is currently limited by"},{"line_number":91,"context_line":"corosync\u0027s ability to scale higher). In extreme cases, 32 and even up"},{"line_number":92,"context_line":"to 64 nodes could be possible however this is not well tested."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Collapsed"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_b8ffcb00","line":91,"updated":"2015-12-14 10:57:16.000000000","message":"by the ability of Corosync to...","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"You can have up to 16 cluster members (this is currently limited by"},{"line_number":91,"context_line":"corosync\u0027s ability to scale higher). In extreme cases, 32 and even up"},{"line_number":92,"context_line":"to 64 nodes could be possible however this is not well tested."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Collapsed"},{"line_number":95,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_931bd072","line":92,"updated":"2015-12-14 10:57:16.000000000","message":"possible, however, this","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"This scenario has the advantage of requiring far fewer, if more"},{"line_number":101,"context_line":"powerful, machines. Additionally, being part of a single cluster"},{"line_number":102,"context_line":"allows us to accurately model the ordering dependancies between"},{"line_number":103,"context_line":"components."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"This scenario can be visualized as below."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_9332f0f0","line":102,"updated":"2015-12-14 10:57:16.000000000","message":"dependancies --\u003e dependencies","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":118,"context_line":"In this configuration, each service runs in a dedicated cluster of"},{"line_number":119,"context_line":"3 or more nodes."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"The benefits to this approach are the physical isolation between"},{"line_number":122,"context_line":"components and the ability to add capacity to specific components."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"You would also choose this option if you prefer to have more but"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_b35b6c21","line":121,"updated":"2015-12-14 10:57:16.000000000","message":"of this","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"#. Load distribution"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"   Many services can act in an active/active capacity, however they"},{"line_number":150,"context_line":"   usually require an external mechanism for distributing requests to"},{"line_number":151,"context_line":"   one of the available instances. The proxy server can serve this"},{"line_number":152,"context_line":"   role."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_93e51039","line":149,"updated":"2015-12-14 10:57:16.000000000","message":"however,","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":154,"context_line":"#. API isolation"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"   By sending all API access through the proxy, we can clearly"},{"line_number":157,"context_line":"   identify service interdependancies. We can also move them to"},{"line_number":158,"context_line":"   locations other than ``localhost`` to increase capacity if the"},{"line_number":159,"context_line":"   need arises."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_9353d0e1","line":157,"updated":"2015-12-14 10:57:16.000000000","message":"interdependencies","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":177,"context_line":"of a proxy server:"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* RabbitMQ"},{"line_number":180,"context_line":"* memcached"},{"line_number":181,"context_line":"* MongoDB"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"However the reasons vary and are discussed under each component\u0027s"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_d322b851","line":180,"updated":"2015-12-14 10:57:16.000000000","message":"Memcached","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":180,"context_line":"* memcached"},{"line_number":181,"context_line":"* MongoDB"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"However the reasons vary and are discussed under each component\u0027s"},{"line_number":184,"context_line":"heading."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"We recommend HAProxy as the load balancer, however there are many"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_f31d740f","line":183,"updated":"2015-12-14 10:57:16.000000000","message":"However,","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":183,"context_line":"However the reasons vary and are discussed under each component\u0027s"},{"line_number":184,"context_line":"heading."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"We recommend HAProxy as the load balancer, however there are many"},{"line_number":187,"context_line":"alternatives in the marketplace."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"We use a check interval of 1 second however the timeouts vary by service."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_53d56819","line":186,"updated":"2015-12-14 10:57:16.000000000","message":"however,","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":186,"context_line":"We recommend HAProxy as the load balancer, however there are many"},{"line_number":187,"context_line":"alternatives in the marketplace."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"We use a check interval of 1 second however the timeouts vary by service."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Generally we use round-robin to distriute load amongst instances of"},{"line_number":192,"context_line":"active/active services, however Galera uses the ``stick-table`` options"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_d3e958e7","line":189,"updated":"2015-12-14 10:57:16.000000000","message":"second, however, the...","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"We use a check interval of 1 second however the timeouts vary by service."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Generally we use round-robin to distriute load amongst instances of"},{"line_number":192,"context_line":"active/active services, however Galera uses the ``stick-table`` options"},{"line_number":193,"context_line":"to ensure that incoming connections to the virtual IP (VIP) should be"},{"line_number":194,"context_line":"directed to only one of the available backends."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_f3cb3470","line":191,"updated":"2015-12-14 10:57:16.000000000","message":"Generally,","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":189,"context_line":"We use a check interval of 1 second however the timeouts vary by service."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Generally we use round-robin to distriute load amongst instances of"},{"line_number":192,"context_line":"active/active services, however Galera uses the ``stick-table`` options"},{"line_number":193,"context_line":"to ensure that incoming connections to the virtual IP (VIP) should be"},{"line_number":194,"context_line":"directed to only one of the available backends."},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_939d1068","line":192,"updated":"2015-12-14 10:57:16.000000000","message":"however,","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":191,"context_line":"Generally we use round-robin to distriute load amongst instances of"},{"line_number":192,"context_line":"active/active services, however Galera uses the ``stick-table`` options"},{"line_number":193,"context_line":"to ensure that incoming connections to the virtual IP (VIP) should be"},{"line_number":194,"context_line":"directed to only one of the available backends."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"In Galera\u0027s case, although it can run active/active, this helps avoid"},{"line_number":197,"context_line":"lock contention and prevent deadlocks. It is used in combination with"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_738d0430","line":194,"updated":"2015-12-14 10:57:16.000000000","message":"back ends.","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"}],"doc/ha-guide/source/intro-ha-controller.rst":[{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"66150ba9ed5da5b7046dff8ac3508cf837b1aafb","unresolved":false,"context_lines":[{"line_number":50,"context_line":"architecture."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The other is optimized for A/A services that do not require any"},{"line_number":53,"context_line":"inter-machaine co-ordination.  In this setup, services are started by"},{"line_number":54,"context_line":"your init system (systemd in most modern distributions) and a tool is"},{"line_number":55,"context_line":"used to move IP addresses between the hosts.  The most common package"},{"line_number":56,"context_line":"for doing this is keepalived."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba8a016a_54a4f1b7","line":53,"updated":"2015-11-23 12:30:04.000000000","message":"There is an extra space after \"co-ordination\" and in line 55.","commit_id":"b059e89f778924ef2efec562acd6b24af69b0328"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"15e8d126b1dc45085ce6ac41abc469dda9a79da0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"architecture."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"The other is optimized for A/A services that do not require any"},{"line_number":53,"context_line":"inter-machaine co-ordination. In this setup, services are started by"},{"line_number":54,"context_line":"your init system (systemd in most modern distributions) and a tool is"},{"line_number":55,"context_line":"used to move IP addresses between the hosts. The most common package"},{"line_number":56,"context_line":"for doing this is keepalived."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a740942_d34158aa","line":53,"updated":"2015-12-14 10:57:16.000000000","message":"inter-machine\n\ncoordination","commit_id":"fedcf23c8dddc4f71b7596b1c0230633f1bc16b6"}]}
