)]}'
{"doc/source/user/cellsv2_layout.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"701824c641f13c025a3f6bb8ed290cb5bb8c8ae9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"      celldb [label\u003d\"Cell Database\" shape\u003d\"box\"]"},{"line_number":124,"context_line":"      compute [label\u003d\"nova-compute\"]"},{"line_number":125,"context_line":"    }"},{"line_number":126,"context_line":"    "},{"line_number":127,"context_line":"    api -\u003e mq -\u003e conductor"},{"line_number":128,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":129,"context_line":"    conductor -\u003e mq -\u003e scheduler"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_efa23d4b","line":126,"updated":"2017-07-25 19:25:29.000000000","message":"yikes","commit_id":"c1494267839e987f164654db7218a4f483d6b2d4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"701824c641f13c025a3f6bb8ed290cb5bb8c8ae9","unresolved":false,"context_lines":[{"line_number":198,"context_line":"      conductor2 -\u003e mq2 -\u003e compute2"},{"line_number":199,"context_line":"      conductor2 -\u003e cell2db"},{"line_number":200,"context_line":"    }"},{"line_number":201,"context_line":"    "},{"line_number":202,"context_line":"    api -\u003e mq1 -\u003e conductor1"},{"line_number":203,"context_line":"    api -\u003e mq2 -\u003e conductor2"},{"line_number":204,"context_line":"    api -\u003e cell1db"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff346bd7_cf89b9ca","line":201,"updated":"2017-07-25 19:25:29.000000000","message":"double oops","commit_id":"c1494267839e987f164654db7218a4f483d6b2d4"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"A basic Nova system consists of the following components:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* The nova-api service which provides the external REST API to users."},{"line_number":33,"context_line":"* The nova-scheduler and nova-placement services which are responsible"},{"line_number":34,"context_line":"  for tracking resources and deciding which compute node instances"},{"line_number":35,"context_line":"  should be on."},{"line_number":36,"context_line":"* An \"API database\" that is used primarily by nova-api and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_0a42c43e","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":30},"updated":"2017-07-27 14:35:56.000000000","message":"meh, could probably drop the nova- part for placement.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"76eff3066edec2239d11503551a45366d3916ec3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"A basic Nova system consists of the following components:"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* The nova-api service which provides the external REST API to users."},{"line_number":33,"context_line":"* The nova-scheduler and nova-placement services which are responsible"},{"line_number":34,"context_line":"  for tracking resources and deciding which compute node instances"},{"line_number":35,"context_line":"  should be on."},{"line_number":36,"context_line":"* An \"API database\" that is used primarily by nova-api and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_34a47e08","line":33,"in_reply_to":"ff346bd7_0a42c43e","updated":"2017-07-28 18:12:25.000000000","message":"+1","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57b4b74bd5ebabcaca6027b0843a57fd0d3613be","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  information about instances, as well as a temporary location for"},{"line_number":39,"context_line":"  instances being built but not yet scheduled."},{"line_number":40,"context_line":"* The nova-conductor service which offloads long-running tasks for the"},{"line_number":41,"context_line":"  API service(s), as well as provides insulation all databases for the"},{"line_number":42,"context_line":"  compute nodes"},{"line_number":43,"context_line":"* The nova-compute service which manages the virt driver and"},{"line_number":44,"context_line":"  hypervisor host."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_0fdf73d6","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":16},"updated":"2017-07-27 15:39:10.000000000","message":"API-level services?  Or is this talking about something different (in which case confusing)?","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  information about instances, as well as a temporary location for"},{"line_number":39,"context_line":"  instances being built but not yet scheduled."},{"line_number":40,"context_line":"* The nova-conductor service which offloads long-running tasks for the"},{"line_number":41,"context_line":"  API service(s), as well as provides insulation all databases for the"},{"line_number":42,"context_line":"  compute nodes"},{"line_number":43,"context_line":"* The nova-compute service which manages the virt driver and"},{"line_number":44,"context_line":"  hypervisor host."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_cab5dc33","line":41,"range":{"start_line":41,"start_character":26,"end_line":41,"end_character":62},"updated":"2017-07-27 14:35:56.000000000","message":"s/as provides insulation all databases for the compute nodes/as insulates compute nodes from direct database connectivity/","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"864e3e2afd5e5ff12f3f793beab9f177d4acff51","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  information about instances, as well as a temporary location for"},{"line_number":39,"context_line":"  instances being built but not yet scheduled."},{"line_number":40,"context_line":"* The nova-conductor service which offloads long-running tasks for the"},{"line_number":41,"context_line":"  API service(s), as well as provides insulation all databases for the"},{"line_number":42,"context_line":"  compute nodes"},{"line_number":43,"context_line":"* The nova-compute service which manages the virt driver and"},{"line_number":44,"context_line":"  hypervisor host."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_f1dba87a","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":16},"in_reply_to":"ff346bd7_0fdf73d6","updated":"2017-07-28 17:39:07.000000000","message":"Yes, API-level services.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"76eff3066edec2239d11503551a45366d3916ec3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"* A \"cell0 database\" which is just like the cell database, but"},{"line_number":48,"context_line":"  contains only instances that failed to be scheduled."},{"line_number":49,"context_line":"* A message queue which allows the services to communicate with each"},{"line_number":50,"context_line":"  other via RPC."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"All deployments have at least the above components. Small deployments"},{"line_number":53,"context_line":"likely have a single message queue that all services share, and a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_b4be2efd","line":50,"updated":"2017-07-28 18:12:25.000000000","message":"I know it happens down below, but I\u0027d be somewhat inclined to telegraph near here that conductor, cell database and message queue are the things that grow when going \"multi\".","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"76eff3066edec2239d11503551a45366d3916ec3","unresolved":false,"context_lines":[{"line_number":53,"context_line":"likely have a single message queue that all services share, and a"},{"line_number":54,"context_line":"single database server which hosts the API database and a single cell"},{"line_number":55,"context_line":"database. This is considered a \"single-cell deployment\" because it"},{"line_number":56,"context_line":"only has one \"real\" cell. The cell0 database mimics a regular cell,"},{"line_number":57,"context_line":"but has no compute nodes and is used only as a place to put instances"},{"line_number":58,"context_line":"that fail to land on a real compute node (and thus a real cell)."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_3440fe07","line":56,"updated":"2017-07-28 18:12:25.000000000","message":"You almost but not quite telegraph in the first bit of this paragraph.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"76eff3066edec2239d11503551a45366d3916ec3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"but has no compute nodes and is used only as a place to put instances"},{"line_number":58,"context_line":"that fail to land on a real compute node (and thus a real cell)."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The purpose of the cells functionality in nova is specifically to"},{"line_number":61,"context_line":"allow larger deployments to shard their many compute nodes into cells,"},{"line_number":62,"context_line":"each of which has a database and message queue. The API database is"},{"line_number":63,"context_line":"always and only global, but there canbe many cell databases (where the bulk of the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_94fe8aac","line":60,"updated":"2017-07-28 18:12:25.000000000","message":"So maybe merge this and the previous paragraph into the one prior. This first sentence, then the first sentence above, and then mix and match.\n\nIt\u0027s fine as it is, but to some extent this \"The purpose\" part is kind of buried.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"The purpose of the cells functionality in nova is specifically to"},{"line_number":61,"context_line":"allow larger deployments to shard their many compute nodes into cells,"},{"line_number":62,"context_line":"each of which has a database and message queue. The API database is"},{"line_number":63,"context_line":"always and only global, but there canbe many cell databases (where the bulk of the"},{"line_number":64,"context_line":"instance information lives), each with a portion of the instances for"},{"line_number":65,"context_line":"the entire deployment within."},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_eadae075","line":63,"range":{"start_line":63,"start_character":34,"end_line":63,"end_character":39},"updated":"2017-07-27 14:35:56.000000000","message":"can be\n\nalso, wrap line again...","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57b4b74bd5ebabcaca6027b0843a57fd0d3613be","unresolved":false,"context_lines":[{"line_number":74,"context_line":"(i.e. ``[api_database]/connection``)."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note:: The pair of ``transport_url`` and ``[database]/connection``"},{"line_number":77,"context_line":"\t  configured for a service defines what cell a service lives"},{"line_number":78,"context_line":"\t  in."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":81,"context_line":"the cells. Since they only have one configured ``transport_url`` and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_4f757bca","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":3},"updated":"2017-07-27 15:39:10.000000000","message":"are these tabs?  Is that kosher?","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"864e3e2afd5e5ff12f3f793beab9f177d4acff51","unresolved":false,"context_lines":[{"line_number":74,"context_line":"(i.e. ``[api_database]/connection``)."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note:: The pair of ``transport_url`` and ``[database]/connection``"},{"line_number":77,"context_line":"\t  configured for a service defines what cell a service lives"},{"line_number":78,"context_line":"\t  in."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":81,"context_line":"the cells. Since they only have one configured ``transport_url`` and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_91e21c2f","line":78,"range":{"start_line":77,"start_character":0,"end_line":78,"end_character":3},"in_reply_to":"ff346bd7_4f757bca","updated":"2017-07-28 17:39:07.000000000","message":"Yes, and probably not.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":86,"context_line":"\t  the ``transport_url`` and ``[database]/connection``"},{"line_number":87,"context_line":"\t  configuration elements of the lower-level services."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Service Layout"},{"line_number":90,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_aa6738b7","line":87,"updated":"2017-07-27 14:35:56.000000000","message":"Might be useful to link here to the nova-manage/nova-status commands that can be used to check that these cell mapping records are correct?","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57b4b74bd5ebabcaca6027b0843a57fd0d3613be","unresolved":false,"context_lines":[{"line_number":83,"context_line":"cells in the API database, with records called *cell mappings*."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":86,"context_line":"\t  the ``transport_url`` and ``[database]/connection``"},{"line_number":87,"context_line":"\t  configuration elements of the lower-level services."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Service Layout"},{"line_number":90,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_0f7bf3bd","line":87,"range":{"start_line":86,"start_character":0,"end_line":87,"end_character":2},"updated":"2017-07-27 15:39:10.000000000","message":"ditto","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"5e07ffbdf8c0e76ef06f5eb61f9d3a6d0e46a041","unresolved":false,"context_lines":[{"line_number":126,"context_line":"      compute [label\u003d\"nova-compute\"]"},{"line_number":127,"context_line":"    }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":130,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    api -\u003e apidb"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_c2f11c03","line":129,"range":{"start_line":129,"start_character":17,"end_line":129,"end_character":24},"updated":"2017-07-28 13:51:52.000000000","message":"should there also be\n\napi -\u003e mq -\u003e conductor?","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"864e3e2afd5e5ff12f3f793beab9f177d4acff51","unresolved":false,"context_lines":[{"line_number":126,"context_line":"      compute [label\u003d\"nova-compute\"]"},{"line_number":127,"context_line":"    }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":130,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    api -\u003e apidb"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_712d7845","line":129,"range":{"start_line":129,"start_character":17,"end_line":129,"end_character":24},"in_reply_to":"ff346bd7_c2f11c03","updated":"2017-07-28 17:39:07.000000000","message":"Yes, but it makes the graph muddy by adding extra lines (even with collapse\u003dTrue). In both of these graphs, I omitted some edges that technically exist, but only result in doubled lines to/from the same nodes.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"All of the services are configured to talk to each other over the same"},{"line_number":140,"context_line":"message bus, and there is only one cell database where instance data"},{"line_number":141,"context_line":"lives."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Multiple Cells"},{"line_number":144,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_eacd4085","line":141,"updated":"2017-07-27 14:35:56.000000000","message":"++ on above diagram. nice.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"5e07ffbdf8c0e76ef06f5eb61f9d3a6d0e46a041","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    api -\u003e mq1 -\u003e conductor1"},{"line_number":203,"context_line":"    api -\u003e mq2 -\u003e conductor2"},{"line_number":204,"context_line":"    api -\u003e cell1db"},{"line_number":205,"context_line":"    api -\u003e cell2db"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    conductor -\u003e cell1db"},{"line_number":208,"context_line":"    conductor -\u003e mq1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_a20a981c","line":205,"updated":"2017-07-28 13:51:52.000000000","message":"what about cell0? would be good to also see how the data gets there.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"864e3e2afd5e5ff12f3f793beab9f177d4acff51","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    api -\u003e mq1 -\u003e conductor1"},{"line_number":203,"context_line":"    api -\u003e mq2 -\u003e conductor2"},{"line_number":204,"context_line":"    api -\u003e cell1db"},{"line_number":205,"context_line":"    api -\u003e cell2db"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    conductor -\u003e cell1db"},{"line_number":208,"context_line":"    conductor -\u003e mq1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df3967d1_f17cc821","line":205,"in_reply_to":"ff346bd7_a20a981c","updated":"2017-07-28 17:39:07.000000000","message":"Well, I\u0027m not sure I can add it without things getting a little muddier, but I will and people can comment. If I add it here, I have to add it to the smaller graph above so it\u0027s clear that cell0 is the same in both.","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d6d586ff76f4f1d822f05686302641b14f0c010b","unresolved":false,"context_lines":[{"line_number":218,"context_line":"things that would otherwise require this any-to-any communication"},{"line_number":219,"context_line":"style. Check the release notes for the version of Nova you are using"},{"line_number":220,"context_line":"for the most up-to-date information about any caveats that may be"},{"line_number":221,"context_line":"present due to this limitation."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Caveats of a Multi-Cell deployment"},{"line_number":224,"context_line":"----------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_6a90304b","line":221,"updated":"2017-07-27 14:35:56.000000000","message":"++","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57b4b74bd5ebabcaca6027b0843a57fd0d3613be","unresolved":false,"context_lines":[{"line_number":236,"context_line":"Quota-related quirks"},{"line_number":237,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Quotas are now calculated live at the point in which an operation"},{"line_number":240,"context_line":"would consume more resource, instead of kept statically in the"},{"line_number":241,"context_line":"database. This means that a multi-cell environment may incorrectly"},{"line_number":242,"context_line":"calculate the usage of a tenant if one of the cells is unreachable, as"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_321a9e6e","line":239,"range":{"start_line":239,"start_character":44,"end_line":239,"end_character":46},"updated":"2017-07-27 15:39:10.000000000","message":"at","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"57b4b74bd5ebabcaca6027b0843a57fd0d3613be","unresolved":false,"context_lines":[{"line_number":237,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Quotas are now calculated live at the point in which an operation"},{"line_number":240,"context_line":"would consume more resource, instead of kept statically in the"},{"line_number":241,"context_line":"database. This means that a multi-cell environment may incorrectly"},{"line_number":242,"context_line":"calculate the usage of a tenant if one of the cells is unreachable, as"},{"line_number":243,"context_line":"those resources cannot be counted. In this case, the tenant may be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff346bd7_9224aab0","line":240,"range":{"start_line":240,"start_character":40,"end_line":240,"end_character":44},"updated":"2017-07-27 15:39:10.000000000","message":"being kept","commit_id":"3a2055cd42e1a1ac41d0b1800d65bbcb0a4d29ce"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e428004baa5af1fb3bc7a15af64d52a6af458524","unresolved":false,"context_lines":[{"line_number":26,"context_line":"          relate to CellsV1, which includes the ``nova-cells``"},{"line_number":27,"context_line":"          service, and the ``[cells]`` section of the configuration"},{"line_number":28,"context_line":"          file. For more information on the differences, see the main"},{"line_number":29,"context_line":"\t  :ref:`cells` page."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Concepts"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df3967d1_b453cee2","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":3},"updated":"2017-07-28 18:00:43.000000000","message":"meh: TAB","commit_id":"249ce0537d97315e4eb5937060fc02d9b2664c60"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"* The nova-scheduler and placement services which are responsible"},{"line_number":38,"context_line":"  for tracking resources and deciding which compute node instances"},{"line_number":39,"context_line":"  should be on."},{"line_number":40,"context_line":"* An \"API database\" that is used primarily by nova-api and"},{"line_number":41,"context_line":"  nova-scheduler (called *API-level services* below) to track location"},{"line_number":42,"context_line":"  information about instances, as well as a temporary location for"},{"line_number":43,"context_line":"  instances being built but not yet scheduled."},{"line_number":44,"context_line":"* The nova-conductor service which offloads long-running tasks for the"},{"line_number":45,"context_line":"  API-level service, as well as insulates compute nodes from direct"},{"line_number":46,"context_line":"  database access"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_c7daebe7","line":43,"range":{"start_line":40,"start_character":2,"end_line":43,"end_character":46},"updated":"2017-08-01 01:39:43.000000000","message":"Did you intentionally omit nova-conductor here?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":37,"context_line":"* The nova-scheduler and placement services which are responsible"},{"line_number":38,"context_line":"  for tracking resources and deciding which compute node instances"},{"line_number":39,"context_line":"  should be on."},{"line_number":40,"context_line":"* An \"API database\" that is used primarily by nova-api and"},{"line_number":41,"context_line":"  nova-scheduler (called *API-level services* below) to track location"},{"line_number":42,"context_line":"  information about instances, as well as a temporary location for"},{"line_number":43,"context_line":"  instances being built but not yet scheduled."},{"line_number":44,"context_line":"* The nova-conductor service which offloads long-running tasks for the"},{"line_number":45,"context_line":"  API-level service, as well as insulates compute nodes from direct"},{"line_number":46,"context_line":"  database access"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_6b376fb2","line":43,"range":{"start_line":40,"start_character":2,"end_line":43,"end_character":46},"in_reply_to":"df3967d1_c7daebe7","updated":"2017-08-01 16:11:20.000000000","message":"Yes, because the api database is primarily for those upper layer services. Conductor uses it a teensy bit (when doing a resize or writing the result of a schedule) but not nearly as much as the others.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  database access"},{"line_number":47,"context_line":"* The nova-compute service which manages the virt driver and"},{"line_number":48,"context_line":"  hypervisor host."},{"line_number":49,"context_line":"* A \"cell database\" which is used by conductor and compute services,"},{"line_number":50,"context_line":"  and which houses the majority of the information about instances."},{"line_number":51,"context_line":"* A \"cell0 database\" which is just like the cell database, but"},{"line_number":52,"context_line":"  contains only instances that failed to be scheduled."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_c7030b42","line":49,"range":{"start_line":49,"start_character":37,"end_line":49,"end_character":67},"updated":"2017-08-01 01:39:43.000000000","message":"The API also hits the cell databases.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  database access"},{"line_number":47,"context_line":"* The nova-compute service which manages the virt driver and"},{"line_number":48,"context_line":"  hypervisor host."},{"line_number":49,"context_line":"* A \"cell database\" which is used by conductor and compute services,"},{"line_number":50,"context_line":"  and which houses the majority of the information about instances."},{"line_number":51,"context_line":"* A \"cell0 database\" which is just like the cell database, but"},{"line_number":52,"context_line":"  contains only instances that failed to be scheduled."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_4b3a6b98","line":49,"range":{"start_line":49,"start_character":37,"end_line":49,"end_character":67},"in_reply_to":"df3967d1_c7030b42","updated":"2017-08-01 16:11:20.000000000","message":"Ack.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"All deployments have at least the above components. Small deployments"},{"line_number":57,"context_line":"likely have a single message queue that all services share, and a"},{"line_number":58,"context_line":"single database server which hosts the API database and a single cell"},{"line_number":59,"context_line":"database. This is considered a \"single-cell deployment\" because it"},{"line_number":60,"context_line":"only has one \"real\" cell. The cell0 database mimics a regular cell,"},{"line_number":61,"context_line":"but has no compute nodes and is used only as a place to put instances"},{"line_number":62,"context_line":"that fail to land on a real compute node (and thus a real cell)."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_bd6938bf","line":59,"range":{"start_line":58,"start_character":35,"end_line":59,"end_character":8},"updated":"2017-08-01 01:39:43.000000000","message":"and the cell0 database?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"a5381c48e35f35738220dfe93b5f9127ae6d6e8e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"but has no compute nodes and is used only as a place to put instances"},{"line_number":62,"context_line":"that fail to land on a real compute node (and thus a real cell)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The purpose of the cells functionality in nova is specifically to"},{"line_number":65,"context_line":"allow larger deployments to shard their many compute nodes into cells,"},{"line_number":66,"context_line":"each of which has a database and message queue. The API database is"},{"line_number":67,"context_line":"always and only global, but there can be many cell databases (where"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_5466e253","line":64,"updated":"2017-07-28 18:16:05.000000000","message":"It\u0027s fine as is, but you might be this paragraph directly below the header of this section, so that \"The purpose...\" is front and center.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"46a13b361042510f0084cc1855ca8a5bf5db10fd","unresolved":false,"context_lines":[{"line_number":61,"context_line":"but has no compute nodes and is used only as a place to put instances"},{"line_number":62,"context_line":"that fail to land on a real compute node (and thus a real cell)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The purpose of the cells functionality in nova is specifically to"},{"line_number":65,"context_line":"allow larger deployments to shard their many compute nodes into cells,"},{"line_number":66,"context_line":"each of which has a database and message queue. The API database is"},{"line_number":67,"context_line":"always and only global, but there can be many cell databases (where"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_57882470","line":64,"in_reply_to":"df3967d1_5466e253","updated":"2017-07-28 18:24:08.000000000","message":"Well, I fell like that\u0027s really the job of the main cells doc (which arguably needs some updating). This is really intended to be a thing you read when you understand the concepts but need to know where the pieces of the puzzle all fit together.\n\nOne of the problems we had early on when merging cellsv1, is every cells session at summit started with \"let me explain cells\" and that took over 40 minutes, so we could never talk about how to get it merged because we were always catching up the new people in the room. I feel like if we turn this into the mega \"what is cells and how does it work and how does it all fit together\" document it\u0027ll be too thick.\n\nThe reason I circle back to it here is because I\u0027ve just laid out the components above and I\u0027m about to tell you what makes a cell and then go on to which pieces are in the cell and not. I could have said \"As you\u0027ve read before, the purpose of cells is..\"\n\nAnyway, I\u0027ll mess with that locally and see.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"7991590fefc66c3bc1419a8fb9d5def9a04d95c9","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":72,"context_line":"at a minimum specify a message queue endpoint"},{"line_number":73,"context_line":"(i.e. ``[default]/transport_url``). Most of the services also require"},{"line_number":74,"context_line":"configuration of database connection information"},{"line_number":75,"context_line":"(i.e. ``[database]/connection``). API-level services that need access"},{"line_number":76,"context_line":"to the global routing and placement information will also be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_175e1ce6","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":17},"updated":"2017-07-28 18:23:37.000000000","message":"This should be [DEFAULT]","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3dbe6889f2671c62d00d030800920f86979ac9e4","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":72,"context_line":"at a minimum specify a message queue endpoint"},{"line_number":73,"context_line":"(i.e. ``[default]/transport_url``). Most of the services also require"},{"line_number":74,"context_line":"configuration of database connection information"},{"line_number":75,"context_line":"(i.e. ``[database]/connection``). API-level services that need access"},{"line_number":76,"context_line":"to the global routing and placement information will also be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_d7f53485","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":17},"in_reply_to":"df3967d1_175e1ce6","updated":"2017-07-28 18:25:34.000000000","message":"I don\u0027t actually think group names are case sensitive, are they?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":72,"context_line":"at a minimum specify a message queue endpoint"},{"line_number":73,"context_line":"(i.e. ``[default]/transport_url``). Most of the services also require"},{"line_number":74,"context_line":"configuration of database connection information"},{"line_number":75,"context_line":"(i.e. ``[database]/connection``). API-level services that need access"},{"line_number":76,"context_line":"to the global routing and placement information will also be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_ab5437cb","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":17},"in_reply_to":"df3967d1_3d9b08ca","updated":"2017-08-01 16:11:20.000000000","message":"Yeah, AFAICT it\u0027s not case-sensitive, but I had already made this edit locally after melwitt brought it up.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":72,"context_line":"at a minimum specify a message queue endpoint"},{"line_number":73,"context_line":"(i.e. ``[default]/transport_url``). Most of the services also require"},{"line_number":74,"context_line":"configuration of database connection information"},{"line_number":75,"context_line":"(i.e. ``[database]/connection``). API-level services that need access"},{"line_number":76,"context_line":"to the global routing and placement information will also be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_3d9b08ca","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":17},"in_reply_to":"df3967d1_77efa887","updated":"2017-08-01 01:39:43.000000000","message":"I\u0027m always used to this being DEFAULT too.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a4b809985a5185345fe0a5979b277472d55dddd8","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":72,"context_line":"at a minimum specify a message queue endpoint"},{"line_number":73,"context_line":"(i.e. ``[default]/transport_url``). Most of the services also require"},{"line_number":74,"context_line":"configuration of database connection information"},{"line_number":75,"context_line":"(i.e. ``[database]/connection``). API-level services that need access"},{"line_number":76,"context_line":"to the global routing and placement information will also be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_77efa887","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":17},"in_reply_to":"df3967d1_d7f53485","updated":"2017-07-28 18:27:42.000000000","message":"I dunno, I haven\u0027t tried lowercasing it. It\u0027s all caps in the nova.conf that comes out of devstack.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":84,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":85,"context_line":"the cells. Since they only have one configured ``transport_url`` and"},{"line_number":86,"context_line":"``[database]/connection`` they look up the information for the other"},{"line_number":87,"context_line":"cells in the API database, with records called *cell mappings*."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":90,"context_line":"          the ``transport_url`` and ``[database]/connection``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_53b59d30","line":87,"range":{"start_line":87,"start_character":48,"end_line":87,"end_character":61},"updated":"2017-08-01 01:39:43.000000000","message":"cell_mappings to match the actual table name? Or you\u0027re just using \"cell mappings\" as a term, like glossaryization?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":84,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":85,"context_line":"the cells. Since they only have one configured ``transport_url`` and"},{"line_number":86,"context_line":"``[database]/connection`` they look up the information for the other"},{"line_number":87,"context_line":"cells in the API database, with records called *cell mappings*."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":90,"context_line":"          the ``transport_url`` and ``[database]/connection``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_eb735f7f","line":87,"range":{"start_line":87,"start_character":48,"end_line":87,"end_character":61},"in_reply_to":"df3967d1_53b59d30","updated":"2017-08-01 16:11:20.000000000","message":"The latter. The records are cell mappings, the table where cell mappings are stored is cell_mappings.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"754d296d996ce8e1bd6882c3a36f69827d9e737c","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":90,"context_line":"          the ``transport_url`` and ``[database]/connection``"},{"line_number":91,"context_line":"          configuration elements of the lower-level services. See the ``nova-manage``"},{"line_number":92,"context_line":"          :ref:`man-page-cells-v2` commands for more information about"},{"line_number":93,"context_line":"          how to create and examine these records."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_6050fc33","line":91,"range":{"start_line":91,"start_character":70,"end_line":91,"end_character":85},"updated":"2017-07-28 20:11:36.000000000","message":"wrap","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Simple"},{"line_number":106,"context_line":"------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"This is a diagram of the basic services that a simple (single-cell)"},{"line_number":109,"context_line":"deployment would have, as well as the relationships"},{"line_number":110,"context_line":"(i.e. communication paths) between them:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":".. graphviz::"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_7377813c","line":110,"range":{"start_line":108,"start_character":0,"end_line":110,"end_character":39},"updated":"2017-08-01 01:39:43.000000000","message":"One could throw the Placement service in here, to show how it\u0027s global to basically everything, but that would muddy the waters and then where do you stop with external services because glance/keystone/cinder/neutron play a part too.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Simple"},{"line_number":106,"context_line":"------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"This is a diagram of the basic services that a simple (single-cell)"},{"line_number":109,"context_line":"deployment would have, as well as the relationships"},{"line_number":110,"context_line":"(i.e. communication paths) between them:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":".. graphviz::"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_ebf8ffc4","line":110,"range":{"start_line":108,"start_character":0,"end_line":110,"end_character":39},"in_reply_to":"df3967d1_7377813c","updated":"2017-08-01 16:11:20.000000000","message":"Right, I omitted placement (and console, etc) for that reason. It was hard enough to make these diagrams only as messy as they are.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"      compute [label\u003d\"nova-compute\"]"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":137,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    api -\u003e apidb"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_d39d0d5a","line":136,"range":{"start_line":136,"start_character":4,"end_line":136,"end_character":24},"updated":"2017-08-01 01:39:43.000000000","message":"Is there a reason we don\u0027t have a path going from nova-api to nova-conductor? Or is that implied through MQ?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":133,"context_line":"      compute [label\u003d\"nova-compute\"]"},{"line_number":134,"context_line":"    }"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":137,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    api -\u003e apidb"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_6b2e4f44","line":136,"range":{"start_line":136,"start_character":4,"end_line":136,"end_character":24},"in_reply_to":"df3967d1_d39d0d5a","updated":"2017-08-01 16:11:20.000000000","message":"See the comments on a previous set. If I add it here, it\u0027ll add a double path which is confusing.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  }"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"All of the services are configured to talk to each other over the same"},{"line_number":149,"context_line":"message bus, and there is only one cell database where instance data"},{"line_number":150,"context_line":"lives."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Multiple Cells"},{"line_number":153,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_53a91d79","line":150,"range":{"start_line":149,"start_character":13,"end_line":150,"end_character":6},"updated":"2017-08-01 01:39:43.000000000","message":"Well, there is also instance data living in the cell0 database. Not sure if mentioning that makes things more confusing or not.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0fd276b4ccf6fad1de75a839c3c6df96b3de087e","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  }"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"All of the services are configured to talk to each other over the same"},{"line_number":149,"context_line":"message bus, and there is only one cell database where instance data"},{"line_number":150,"context_line":"lives."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Multiple Cells"},{"line_number":153,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_f4221b01","line":150,"range":{"start_line":149,"start_character":13,"end_line":150,"end_character":6},"in_reply_to":"df3967d1_0be0e3f9","updated":"2017-08-01 20:14:09.000000000","message":"Ack. Docs suck because some people need a ton of detail and some people get confused with a ton of detail, so you can\u0027t win.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":146,"context_line":"  }"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"All of the services are configured to talk to each other over the same"},{"line_number":149,"context_line":"message bus, and there is only one cell database where instance data"},{"line_number":150,"context_line":"lives."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Multiple Cells"},{"line_number":153,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_0be0e3f9","line":150,"range":{"start_line":149,"start_character":13,"end_line":150,"end_character":6},"in_reply_to":"df3967d1_53a91d79","updated":"2017-08-01 16:11:20.000000000","message":"Yeah, I know, I\u0027m just trying to cut out some complexity here.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    labelloc\u003dbottom;"},{"line_number":169,"context_line":"    labeljust\u003dleft;"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    subgraph api {"},{"line_number":172,"context_line":"      api [label\u003d\"nova-api\"]"},{"line_number":173,"context_line":"      scheduler [label\u003d\"nova-scheduler\"]"},{"line_number":174,"context_line":"      conductor [label\u003d\"super conductor\"]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_33621940","line":171,"updated":"2017-08-01 01:39:43.000000000","message":"API also talks directly to the compute hosts within a cell doesn\u0027t it? Not that we want to add a bunch more directed graphs in here.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":168,"context_line":"    labelloc\u003dbottom;"},{"line_number":169,"context_line":"    labeljust\u003dleft;"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    subgraph api {"},{"line_number":172,"context_line":"      api [label\u003d\"nova-api\"]"},{"line_number":173,"context_line":"      scheduler [label\u003d\"nova-scheduler\"]"},{"line_number":174,"context_line":"      conductor [label\u003d\"super conductor\"]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_cbcadb6c","line":171,"in_reply_to":"df3967d1_33621940","updated":"2017-08-01 16:11:20.000000000","message":"I specifically didn\u0027t add it because it ends up with too many swooping lines around the whole chart. I think some abstraction is okay here. We\u0027re trying to show the general arrangement. We have control services  talking to both cell MQ and DB, which I think covers the orientation of the firewalls. If people are going to use this chart to determine exactly which ports each individual machine can talk to, then they\u0027re going to be missing some stuff anyway.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":233,"context_line":"resources across the cloud. This is intentional and provides security"},{"line_number":234,"context_line":"and failure domain isolation benefits, but also has impacts on some"},{"line_number":235,"context_line":"things that would otherwise require this any-to-any communication"},{"line_number":236,"context_line":"style. Check the release notes for the version of Nova you are using"},{"line_number":237,"context_line":"for the most up-to-date information about any caveats that may be"},{"line_number":238,"context_line":"present due to this limitation."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Caveats of a Multi-Cell deployment"},{"line_number":241,"context_line":"----------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_734f81bd","line":238,"range":{"start_line":236,"start_character":7,"end_line":238,"end_character":31},"updated":"2017-08-01 01:39:43.000000000","message":"We don\u0027t have to do it here, but at some point I think we might want some kind of per-release limitations living outside of the release notes, kind of like what we have for Placement:\n\nhttps://docs.openstack.org/nova/latest/user/placement.html#upgrade-notes\n\n^ is more about Placement-specific per-release upgrade notes though.\n\nI just find that easier to point people to for specific deployment type questions about Placement in a given release then pointing them at the release notes, which have a ton of content, and saying, \"it\u0027s in here somewhere, good luck.\"","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":233,"context_line":"resources across the cloud. This is intentional and provides security"},{"line_number":234,"context_line":"and failure domain isolation benefits, but also has impacts on some"},{"line_number":235,"context_line":"things that would otherwise require this any-to-any communication"},{"line_number":236,"context_line":"style. Check the release notes for the version of Nova you are using"},{"line_number":237,"context_line":"for the most up-to-date information about any caveats that may be"},{"line_number":238,"context_line":"present due to this limitation."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Caveats of a Multi-Cell deployment"},{"line_number":241,"context_line":"----------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_ab9e7760","line":238,"range":{"start_line":236,"start_character":7,"end_line":238,"end_character":31},"in_reply_to":"df3967d1_734f81bd","updated":"2017-08-01 16:11:20.000000000","message":"Yeah, I know. I was going to not put anything release-specific in here, but then decided it was worth doing a little bit here to help clarify.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":237,"context_line":"for the most up-to-date information about any caveats that may be"},{"line_number":238,"context_line":"present due to this limitation."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Caveats of a Multi-Cell deployment"},{"line_number":241,"context_line":"----------------------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":".. note: This information is correct as of the Pike release."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_93d785c0","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":34},"updated":"2017-08-01 01:39:43.000000000","message":"Cool, this is kind of what I\u0027m talking about above - a list of limitations with the multi-cell layout. Should we just also mention the specific up-call limitations in here too? The two main ones are the server group affinity/anti-affinity checks on the compute service, and the build retries.\n\n--\n\nDo we want to mention anything about websocket console proxy being per-cell?","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5086fe2bc54ca56c10b8080a1f2ca53959bfb196","unresolved":false,"context_lines":[{"line_number":237,"context_line":"for the most up-to-date information about any caveats that may be"},{"line_number":238,"context_line":"present due to this limitation."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Caveats of a Multi-Cell deployment"},{"line_number":241,"context_line":"----------------------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":".. note: This information is correct as of the Pike release."}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_ab77973a","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":34},"in_reply_to":"df3967d1_93d785c0","updated":"2017-08-01 16:11:20.000000000","message":"I wanted to leave that out of the above diagrams for clarity and suggested a follow-on that added another diagram that omitted things like MQ and DB and only showed services.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Currently it is not possible to migrate an instance from a host in one"},{"line_number":249,"context_line":"cell to a host in another cell. This may be possible in the future,"},{"line_number":250,"context_line":"but it is currently unsupported. This impacts cold migration,"},{"line_number":251,"context_line":"resizes, live migrations, rebuild, evacuate, and unshelve operations."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"Quota-related quirks"},{"line_number":254,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_13f5d557","line":251,"range":{"start_line":251,"start_character":26,"end_line":251,"end_character":33},"updated":"2017-08-01 01:39:43.000000000","message":"We can remove \u0027rebuild\u0027 from this list. A rebuild that moves is an evacuate, otherwise a rebuild is stuck to the same host intentionally.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Quotas are now calculated live at the point at which an operation"},{"line_number":257,"context_line":"would consume more resource, instead of being kept statically in the"},{"line_number":258,"context_line":"database. This means that a multi-cell environment may incorrectly"},{"line_number":259,"context_line":"calculate the usage of a tenant if one of the cells is unreachable, as"},{"line_number":260,"context_line":"those resources cannot be counted. In this case, the tenant may be"},{"line_number":261,"context_line":"able to consume more resource from one of the available cells, putting"},{"line_number":262,"context_line":"them far over quota when the unreachable cell returns."},{"line_number":263,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_f3e93180","line":260,"range":{"start_line":258,"start_character":10,"end_line":260,"end_character":34},"updated":"2017-08-01 01:39:43.000000000","message":"We could mention that we have plans to fix this using the Placement /usages API added in Pike.","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f1b4aa724c99bae28b80e81cecde16d830b490b","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":"With a multi-cell environment with multiple message queues, it is"},{"line_number":276,"context_line":"likely that operators will want to configure a separate connection to"},{"line_number":277,"context_line":"a unified queue for notifications. This can be done in the"},{"line_number":278,"context_line":"configuration file of all nodes."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"Neutron Metadata API proxy"},{"line_number":281,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df3967d1_f3137165","line":278,"range":{"start_line":277,"start_character":35,"end_line":278,"end_character":32},"updated":"2017-08-01 01:39:43.000000000","message":"This is the [oslo_messaging_notifications]/transport_url option, right? Maybe we should link to that as a hint:\n\nhttps://docs.openstack.org/oslo.messaging/latest/configration/opts.html#oslo_messaging_notifications.transport_url","commit_id":"ac1b5f53c9e6285244b5e2094b0f3c5c64894f25"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b8455316b84f9dfae0bf666ef1105ea580995b52","unresolved":false,"context_lines":[{"line_number":68,"context_line":"each of which has a database and message queue. The API database is"},{"line_number":69,"context_line":"always and only global, but there can be many cell databases (where"},{"line_number":70,"context_line":"the bulk of the instance information lives), each with a portion of"},{"line_number":71,"context_line":"the instances for the entire deployment within."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"All of the nova services use a configuration file, all of which will"},{"line_number":74,"context_line":"at a minimum specify a message queue endpoint"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df3967d1_86172a46","line":71,"updated":"2017-08-01 16:18:38.000000000","message":"++ good section above.","commit_id":"2dedcf980a0af3fa8a7037e29f1d6d0ee0283697"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b8455316b84f9dfae0bf666ef1105ea580995b52","unresolved":false,"context_lines":[{"line_number":91,"context_line":".. note:: The API database must have cell mapping records that match"},{"line_number":92,"context_line":"          the ``transport_url`` and ``[database]/connection``"},{"line_number":93,"context_line":"          configuration elements of the lower-level services. See the"},{"line_number":94,"context_line":"\t  ``nova-manage`` :ref:`man-page-cells-v2` commands for more"},{"line_number":95,"context_line":"\t  information about how to create and examine these records."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Service Layout"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df3967d1_6628c685","line":94,"range":{"start_line":94,"start_character":0,"end_line":94,"end_character":3},"updated":"2017-08-01 16:18:38.000000000","message":"meh. TABs.","commit_id":"2dedcf980a0af3fa8a7037e29f1d6d0ee0283697"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"0f752243e3e368ef42d759745d9c1b92832f58cd","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":87,"context_line":"the cells. Since they only have one configured ``transport_url`` and"},{"line_number":88,"context_line":"``[database]/connection`` they look up the information for the other"},{"line_number":89,"context_line":"cells in the API database, with records called *cell mappings*."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":".. note:: The API database must have cell mapping records that match"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df3967d1_f173527f","line":88,"range":{"start_line":88,"start_character":3,"end_line":88,"end_character":11},"updated":"2017-08-01 17:00:41.000000000","message":"is it api_database? Or to which database does this config option points to for api level services?","commit_id":"7c17010448782181bc9197ce78ff90584b307fd3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0e306791c20585396dc49754f36de2fdfe8c2263","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"API-level services need to be able to contact other services in all of"},{"line_number":87,"context_line":"the cells. Since they only have one configured ``transport_url`` and"},{"line_number":88,"context_line":"``[database]/connection`` they look up the information for the other"},{"line_number":89,"context_line":"cells in the API database, with records called *cell mappings*."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":".. note:: The API database must have cell mapping records that match"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df3967d1_0ca2394c","line":88,"range":{"start_line":88,"start_character":3,"end_line":88,"end_character":11},"in_reply_to":"df3967d1_f173527f","updated":"2017-08-01 17:41:41.000000000","message":"No, this is saying that they only have one \"main\" database connection (separate from the API one), but there are multiple \"main\" databases: the cells. So, we look them  up (in the api database) instead of the config like normal.","commit_id":"7c17010448782181bc9197ce78ff90584b307fd3"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"0f752243e3e368ef42d759745d9c1b92832f58cd","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":139,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    api -\u003e apidb"},{"line_number":142,"context_line":"    api -\u003e cell0db"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df3967d1_b1f38a9e","line":139,"range":{"start_line":139,"start_character":14,"end_line":139,"end_character":16},"updated":"2017-08-01 17:00:41.000000000","message":"I just meant to make this arrow point in both sides to correspond all other conductors pictured in this document","commit_id":"7c17010448782181bc9197ce78ff90584b307fd3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0e306791c20585396dc49754f36de2fdfe8c2263","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    api -\u003e mq -\u003e compute"},{"line_number":139,"context_line":"    conductor -\u003e mq -\u003e scheduler"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    api -\u003e apidb"},{"line_number":142,"context_line":"    api -\u003e cell0db"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df3967d1_2c14dd4d","line":139,"range":{"start_line":139,"start_character":14,"end_line":139,"end_character":16},"in_reply_to":"df3967d1_b1f38a9e","updated":"2017-08-01 17:41:41.000000000","message":"Yeah, but it ends up with a double edge between the mq and conductor, which hurts the readability of the graph. I think it\u0027s okay to not have all the arrow heads perfect as any link is a link.","commit_id":"7c17010448782181bc9197ce78ff90584b307fd3"}]}
