)]}'
{"specs/ocata/couchbase-cluster.rst":[{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* create"},{"line_number":63,"context_line":"* grow"},{"line_number":64,"context_line":"* shrink"},{"line_number":65,"context_line":"* delete"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Couchbase imposes cluster wide quota on the memory that get"},{"line_number":68,"context_line":"evenly distributed between node services."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_abb0d28c","line":65,"updated":"2016-11-15 15:50:57.000000000","message":"Hopefully upgrade will merge before you do this, so you should add upgrade to your list.","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* Retrieve the current Administrative credentials from the first"},{"line_number":96,"context_line":"  node (coordinator) of the existing cluster."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Provision and initialize a requested number of instances as Couchbase nodes"},{"line_number":99,"context_line":"  with the current credentials (above)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_6b44fa73","line":96,"updated":"2016-11-15 15:50:57.000000000","message":"What happens if the coordinator node is lost?","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"367aa7f30412b1d60acc6b7edc8fcab8f2851004","unresolved":false,"context_lines":[{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* Retrieve the current Administrative credentials from the first"},{"line_number":96,"context_line":"  node (coordinator) of the existing cluster."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Provision and initialize a requested number of instances as Couchbase nodes"},{"line_number":99,"context_line":"  with the current credentials (above)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_ab944f37","line":96,"in_reply_to":"7a77a97e_6b44fa73","updated":"2016-11-15 16:36:45.000000000","message":"The \u0027coordinator\u0027 is just one random node from the cluster. Any node can be a coordinator. We pick one of the existing ACTIVE nodes.","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":98,"context_line":"* Provision and initialize a requested number of instances as Couchbase nodes"},{"line_number":99,"context_line":"  with the current credentials (above)."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Wait for the instances to become active."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Add the new nodes to the cluster via the coordinator node."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_8b179650","line":101,"updated":"2016-11-15 15:50:57.000000000","message":"Is it possible to add the nodes to the cluster as the instances become active rather than waiting for all the nodes to become active before moving to the next step?","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"367aa7f30412b1d60acc6b7edc8fcab8f2851004","unresolved":false,"context_lines":[{"line_number":98,"context_line":"* Provision and initialize a requested number of instances as Couchbase nodes"},{"line_number":99,"context_line":"  with the current credentials (above)."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Wait for the instances to become active."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"* Add the new nodes to the cluster via the coordinator node."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_0bb1c38f","line":101,"in_reply_to":"7a77a97e_8b179650","updated":"2016-11-15 16:36:45.000000000","message":"Possibly but that would require us run rebalance separately for every node. Since the nodes come up around the same time it is better to add them together as it would have less impact on cluster performance: \"If you are planning on performing a number of additions and removals simultaneously, it is better to add and remove multiple nodes and perform one rebalance, than to perform a rebalance operation with each individual move.\"","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":170,"context_line":"Internal API"},{"line_number":171,"context_line":"------------"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"The following methods will be implemented in the CouchbaseGuestAgentAPI::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def initialize_cluster(self):"},{"line_number":176,"context_line":"        LOG.debug(\"Configuring cluster parameters via node: %s\" % self.id)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_0649bb5f","line":173,"updated":"2016-11-15 15:50:57.000000000","message":"Since we have a \"Guest Agent\" section and no Taskmanager section, I have always taken \"Internal API\" to be the Taskmanager API.  For clusters, we should probably also document how the cluster.api/taskmanager/guestagent will be implemented.","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":205,"context_line":"Guest Agent"},{"line_number":206,"context_line":"-----------"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"The work will require some preliminary refactoring of the guest manager."},{"line_number":209,"context_line":"This may also include tasks such that:"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":" - providing a common framework for executing Couchbase CLI calls"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_468d7330","line":208,"updated":"2016-11-15 15:50:57.000000000","message":"Uh, yeah, I think you need to go into a lot more detail than \"some preliminary refactoring\" :-)","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"Dashboard Impact (UX)"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Will need to enable Couchbase as a clustering datastore."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_66998f6e","line":224,"updated":"2016-11-15 15:50:57.000000000","message":"Are there Couchbase specific settings that the user will need to deal with.  How do we expect to manage these in the context of the dashboard?","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"367aa7f30412b1d60acc6b7edc8fcab8f2851004","unresolved":false,"context_lines":[{"line_number":221,"context_line":"Dashboard Impact (UX)"},{"line_number":222,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Will need to enable Couchbase as a clustering datastore."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_ee2575ab","line":224,"in_reply_to":"7a77a97e_66998f6e","updated":"2016-11-15 16:36:45.000000000","message":"I don\u0027t think so.","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"365e2a1ef02c6f2980992d5e6610c3c0067aa4dc","unresolved":false,"context_lines":[{"line_number":236,"context_line":"Milestones"},{"line_number":237,"context_line":"----------"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Newton"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"Work Items"},{"line_number":242,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a77a97e_26607735","line":239,"updated":"2016-11-15 15:50:57.000000000","message":"Wow, Petr, I see you\u0027re putting your Astrophysics degree to work here.","commit_id":"4605109021978a5644a2af5de9e05dc0456f1741"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"2949818f4731b9e7c384fb6cf7147332e6843ae2","unresolved":false,"context_lines":[{"line_number":177,"context_line":"-----------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The work will require some preliminary refactoring of the guest manager."},{"line_number":180,"context_line":"This may also include tasks such that:"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":" - providing a common framework for executing Couchbase CLI calls"},{"line_number":183,"context_line":" - making the ramsize quota relative to the node\u0027s total RAM"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a77a97e_64f832c4","line":180,"updated":"2016-11-17 16:31:59.000000000","message":"This is spelling out WHY you want to refactor.  My point was that you should indicate HOW you intend to refactor it.","commit_id":"9442261b16b0bf82dc202cc743c83c38a7d2a8c5"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Problem Description"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Couchbase is by nature a distributed database."},{"line_number":38,"context_line":"Documents are distributed evenly across all nodes based on the hash of the"},{"line_number":39,"context_line":"document key."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_d83408e0","line":36,"updated":"2016-11-23 17:19:37.000000000","message":"The majority of this problem description feels like a preliminary. Maybe making a section for the preliminary makes sense for seperating these? This will make it easier to tell what\u0027s the problem with Trove and what is a feature of Couchbase when reading this description.","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"1a1efa229dd5fbc37f58f32ab6e07ca3cba1541f","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Problem Description"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Couchbase is by nature a distributed database."},{"line_number":38,"context_line":"Documents are distributed evenly across all nodes based on the hash of the"},{"line_number":39,"context_line":"document key."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_767ce572","line":36,"in_reply_to":"5a74a57a_d83408e0","updated":"2016-11-23 17:44:59.000000000","message":"Right now we don\u0027t have that section. I think it is a fine idea. Maybe you can propose a change to the default template and we can discuss it there.","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Client are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_22bceb6b","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":6},"updated":"2016-11-23 17:19:37.000000000","message":"Clients","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Client are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_f69f155d","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":6},"in_reply_to":"5a74a57a_22bceb6b","updated":"2016-11-23 17:49:14.000000000","message":"Done","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"},{"line_number":48,"context_line":"redistributed within the cluster (rebalance)."},{"line_number":49,"context_line":"Updated cluster maps are continuously provided to the clients."},{"line_number":50,"context_line":"Any active client connections should not be interrupted throughout the process."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_65ab4d8a","line":48,"range":{"start_line":48,"start_character":32,"end_line":48,"end_character":44},"updated":"2016-11-23 17:19:37.000000000","message":"this is also known as \u0027rebalance\u0027","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"},{"line_number":48,"context_line":"redistributed within the cluster (rebalance)."},{"line_number":49,"context_line":"Updated cluster maps are continuously provided to the clients."},{"line_number":50,"context_line":"Any active client connections should not be interrupted throughout the process."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_9687c10e","line":48,"range":{"start_line":48,"start_character":32,"end_line":48,"end_character":44},"in_reply_to":"5a74a57a_65ab4d8a","updated":"2016-11-23 17:49:14.000000000","message":"Done","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"When a node gets removed from the cluster the replicas on the other nodes"},{"line_number":53,"context_line":"are promoted to the active and cluster maps updated so that the clients can"},{"line_number":54,"context_line":"keep serving the requests. The promoted documents are then re-replicated within"},{"line_number":55,"context_line":"the remaining nodes (rebalance)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Proposed Change"},{"line_number":58,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_c52261b9","line":55,"range":{"start_line":54,"start_character":59,"end_line":55,"end_character":32},"updated":"2016-11-23 17:19:37.000000000","message":"rebalanced.","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"When a node gets removed from the cluster the replicas on the other nodes"},{"line_number":53,"context_line":"are promoted to the active and cluster maps updated so that the clients can"},{"line_number":54,"context_line":"keep serving the requests. The promoted documents are then re-replicated within"},{"line_number":55,"context_line":"the remaining nodes (rebalance)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Proposed Change"},{"line_number":58,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_b67cbd21","line":55,"range":{"start_line":54,"start_character":59,"end_line":55,"end_character":32},"in_reply_to":"5a74a57a_c52261b9","updated":"2016-11-23 17:49:14.000000000","message":"Done","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* create"},{"line_number":63,"context_line":"* grow"},{"line_number":64,"context_line":"* shrink"},{"line_number":65,"context_line":"* delete"},{"line_number":66,"context_line":"* upgrade"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Couchbase imposes cluster wide quota on the memory that get"},{"line_number":69,"context_line":"evenly distributed between node services."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_18d04053","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":9},"updated":"2016-11-23 17:19:37.000000000","message":"Are you missing descriptions/sections for these two actions?","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"1a1efa229dd5fbc37f58f32ab6e07ca3cba1541f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* create"},{"line_number":63,"context_line":"* grow"},{"line_number":64,"context_line":"* shrink"},{"line_number":65,"context_line":"* delete"},{"line_number":66,"context_line":"* upgrade"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Couchbase imposes cluster wide quota on the memory that get"},{"line_number":69,"context_line":"evenly distributed between node services."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_7641450b","line":66,"range":{"start_line":65,"start_character":0,"end_line":66,"end_character":9},"in_reply_to":"5a74a57a_18d04053","updated":"2016-11-23 17:44:59.000000000","message":"See Morgan\u0027s comment from Nov 15 10:50\n\nThere is a patch set in flight which will introduce cluster update. It will contain default rolling strategy which will perform upgrade instance-by-instance using the existing single-instance upgrade implementation.\nWe would stick with that default behavior.\n\nDelete will be using the default base implementation (same for all clusters).","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Internal API"},{"line_number":172,"context_line":"------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Guest Agent"},{"line_number":177,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_bb6586e2","line":174,"range":{"start_line":174,"start_character":0,"end_line":174,"end_character":4},"updated":"2016-11-23 17:19:37.000000000","message":"CouchbaseGuestAgentAPI will be modified and now supports the API methods described in Guest Agent. Right?","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Internal API"},{"line_number":172,"context_line":"------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Guest Agent"},{"line_number":177,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_76e785e4","line":174,"range":{"start_line":174,"start_character":0,"end_line":174,"end_character":4},"in_reply_to":"5a74a57a_bb6586e2","updated":"2016-11-23 17:49:14.000000000","message":"See Morgan\u0027s comment from Nov 15 10:50\n\nHe suggested that Internal API may really refer to taskmanager API.\n\nAs above, do we need a new section...?","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":187,"context_line":"   which we have been moving away from in other guests as well."},{"line_number":188,"context_line":" - making the ramsize quota relative to the node\u0027s total RAM"},{"line_number":189,"context_line":"   Couchbase 3 requires a parameter to cluster-init is RAMSIZE quota."},{"line_number":190,"context_line":"   The valid value is between 256MB and 80% or available RAM."},{"line_number":191,"context_line":"   Make the default % a Trove variable."},{"line_number":192,"context_line":" - using appropriate guestagent models for the Couchbase administrative user"},{"line_number":193,"context_line":"   Couchbase should be using it\u0027s own User model rather than relying on"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_78177451","line":190,"range":{"start_line":190,"start_character":44,"end_line":190,"end_character":46},"updated":"2016-11-23 17:19:37.000000000","message":"of","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":187,"context_line":"   which we have been moving away from in other guests as well."},{"line_number":188,"context_line":" - making the ramsize quota relative to the node\u0027s total RAM"},{"line_number":189,"context_line":"   Couchbase 3 requires a parameter to cluster-init is RAMSIZE quota."},{"line_number":190,"context_line":"   The valid value is between 256MB and 80% or available RAM."},{"line_number":191,"context_line":"   Make the default % a Trove variable."},{"line_number":192,"context_line":" - using appropriate guestagent models for the Couchbase administrative user"},{"line_number":193,"context_line":"   Couchbase should be using it\u0027s own User model rather than relying on"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_d6a05993","line":190,"range":{"start_line":190,"start_character":44,"end_line":190,"end_character":46},"in_reply_to":"5a74a57a_78177451","updated":"2016-11-23 17:49:14.000000000","message":"Done","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self._call(\"initialize_cluster\","},{"line_number":201,"context_line":"                   guest_api.AGENT_HIGH_TIMEOUT, self.version_cap)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def get_cluster_password(self):"},{"line_number":204,"context_line":"        LOG.debug(\"Retrieving cluster password from node: %s\" % self.id)"},{"line_number":205,"context_line":"        return self._call(\"get_cluster_password\","},{"line_number":206,"context_line":"                          guest_api.AGENT_LOW_TIMEOUT, self.version_cap)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def get_cluster_rebalance_status(self):"},{"line_number":209,"context_line":"        LOG.debug(\"Retrieving status of current cluster rebalance via node: %s\""},{"line_number":210,"context_line":"                  % self.id)"},{"line_number":211,"context_line":"        return self._call(\"get_cluster_rebalance_status\","},{"line_number":212,"context_line":"                          guest_api.AGENT_LOW_TIMEOUT, self.version_cap)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def add_nodes(self, nodes):"},{"line_number":215,"context_line":"        LOG.debug(\"Adding nodes to the cluster: %s\" % self.id)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_d8f2489a","line":212,"range":{"start_line":203,"start_character":4,"end_line":212,"end_character":72},"updated":"2016-11-23 17:19:37.000000000","message":"Would it make more sense to use the @property decorator to access these? Renaming the functions to cluster_password and cluster_rebalance_status? As we know in python long function names can be a pain with pep8.","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"1a1efa229dd5fbc37f58f32ab6e07ca3cba1541f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        self._call(\"initialize_cluster\","},{"line_number":201,"context_line":"                   guest_api.AGENT_HIGH_TIMEOUT, self.version_cap)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def get_cluster_password(self):"},{"line_number":204,"context_line":"        LOG.debug(\"Retrieving cluster password from node: %s\" % self.id)"},{"line_number":205,"context_line":"        return self._call(\"get_cluster_password\","},{"line_number":206,"context_line":"                          guest_api.AGENT_LOW_TIMEOUT, self.version_cap)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def get_cluster_rebalance_status(self):"},{"line_number":209,"context_line":"        LOG.debug(\"Retrieving status of current cluster rebalance via node: %s\""},{"line_number":210,"context_line":"                  % self.id)"},{"line_number":211,"context_line":"        return self._call(\"get_cluster_rebalance_status\","},{"line_number":212,"context_line":"                          guest_api.AGENT_LOW_TIMEOUT, self.version_cap)"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def add_nodes(self, nodes):"},{"line_number":215,"context_line":"        LOG.debug(\"Adding nodes to the cluster: %s\" % self.id)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_56d8c953","line":212,"range":{"start_line":203,"start_character":4,"end_line":212,"end_character":72},"in_reply_to":"5a74a57a_d8f2489a","updated":"2016-11-23 17:44:59.000000000","message":"This is really a call not a property (certainly not an API property). I don\u0027t think any other cluster strategy uses properties in the API. Sure we could rename it but I don\u0027t think that extra \u0027get\u0027 saves us much and it is consistent with other strategies.","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"324bd34290e3dbfcb544f55e05c6094bbfef104a","unresolved":false,"context_lines":[{"line_number":249,"context_line":"Milestones"},{"line_number":250,"context_line":"----------"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"Newton"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Work Items"},{"line_number":255,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_b81d8c11","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":6},"updated":"2016-11-23 17:19:37.000000000","message":"Ocata?","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"11fbc8970cb1a0381aa8860d75ef62955baeb5c8","unresolved":false,"context_lines":[{"line_number":249,"context_line":"Milestones"},{"line_number":250,"context_line":"----------"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"Newton"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Work Items"},{"line_number":255,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a74a57a_56944936","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":6},"in_reply_to":"5a74a57a_b81d8c11","updated":"2016-11-23 17:49:14.000000000","message":"Done","commit_id":"16bbc8cf750d4502b2c58d1bff44cfc3a83914be"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"56b92478f5766bdf44209d2053313559eea11356","unresolved":false,"context_lines":[{"line_number":40,"context_line":"There are no query routers or configuration servers like in some other"},{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Clients are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_e949d8b8","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":44},"updated":"2016-11-30 20:55:06.000000000","message":"Should be replaced with \"that was distributed evenly across all nodes.\"\n\nBy doing this we can more easily connect this statement with the one starting on line 38. Unless is there a reason why three is the magic number here?","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"6df642118f0f2cb5e7b6e829ba7f28819fa67680","unresolved":false,"context_lines":[{"line_number":40,"context_line":"There are no query routers or configuration servers like in some other"},{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Clients are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_3502430a","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":44},"in_reply_to":"5a74a57a_e949d8b8","updated":"2016-11-30 21:58:41.000000000","message":"Done","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"56b92478f5766bdf44209d2053313559eea11356","unresolved":false,"context_lines":[{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Clients are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_2992f04b","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":7},"updated":"2016-11-30 20:55:06.000000000","message":"Clients are the Couchbase clients? Or in Trove\u0027s context what would that be?","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"6df642118f0f2cb5e7b6e829ba7f28819fa67680","unresolved":false,"context_lines":[{"line_number":41,"context_line":"databases (MongoDB)."},{"line_number":42,"context_line":"Each document may have up to three replicas in addition to the active copy"},{"line_number":43,"context_line":"distributed on the three of the other nodes."},{"line_number":44,"context_line":"Clients are provided with an updated \u0027cluster map\u0027 which they use to"},{"line_number":45,"context_line":"lookup data."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"When a node gets added to the cluster the existing documents are incrementally"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_9ab0a48d","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":7},"in_reply_to":"5a74a57a_2992f04b","updated":"2016-11-30 21:58:41.000000000","message":"Done","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"56b92478f5766bdf44209d2053313559eea11356","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The following configuration values will be implemented in the Couchbase"},{"line_number":127,"context_line":"configuration group::"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027cluster_support\u0027, default\u003dTrue,"},{"line_number":130,"context_line":"                help\u003d\u0027Enable clusters to be created and managed.\u0027),"},{"line_number":131,"context_line":"    cfg.StrOpt(\u0027api_strategy\u0027,"},{"line_number":132,"context_line":"               default\u003d\u0027trove.common.strategies.cluster.experimental.\u0027"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_e9fe38ad","line":129,"updated":"2016-11-30 20:55:06.000000000","message":"No cluster_secure option or do we plan not to implement that? like\n\n\u003e cfg.BoolOpt(\u0027cluster_secure\u0027, default\u003dTrue,\n              help\u003d\u0027Create secure clusters. If False then the \u0027\n                   \u0027Role-Based Access Control will be disabled.\u0027),\n\nhttp://developer.couchbase.com/documentation/server/current/security/concepts-rba.html","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"6df642118f0f2cb5e7b6e829ba7f28819fa67680","unresolved":false,"context_lines":[{"line_number":126,"context_line":"The following configuration values will be implemented in the Couchbase"},{"line_number":127,"context_line":"configuration group::"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    cfg.BoolOpt(\u0027cluster_support\u0027, default\u003dTrue,"},{"line_number":130,"context_line":"                help\u003d\u0027Enable clusters to be created and managed.\u0027),"},{"line_number":131,"context_line":"    cfg.StrOpt(\u0027api_strategy\u0027,"},{"line_number":132,"context_line":"               default\u003d\u0027trove.common.strategies.cluster.experimental.\u0027"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_da493cd2","line":129,"in_reply_to":"5a74a57a_e9fe38ad","updated":"2016-11-30 21:58:41.000000000","message":"This was added in v4. This is proposing changes for the current version which is v3.\n\nThis also requires LDAP. Our guests implementations would need to support this mode of authentication.\n\nWe already have root API to allow taking full control over an instance/cluster. There has also been an ongoing effort to make our existing user access control more flexible.\n\n\nAlso note that this is about management access (i.e. Cluster configuration etc. Applications do not use this. They login directly to their respective schema.).\nIt is not entirely clear what it even means in the trove context. We (trove) manage the trove instances. Our implementations make certain assumptions and rely on certain guest behaviors. We simply cannot guarantee the performance, consistency and stability of the system while letting people manage the cluster/instance under us.\nThat\u0027s why we go long way to provide our own mechanisms for RBAC, configuration groups, user \u0026 database API, root-enable API and history.","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"56b92478f5766bdf44209d2053313559eea11356","unresolved":false,"context_lines":[{"line_number":188,"context_line":" - making the ramsize quota relative to the node\u0027s total RAM"},{"line_number":189,"context_line":"   Couchbase 3 requires a parameter to cluster-init is RAMSIZE quota."},{"line_number":190,"context_line":"   The valid value is between 256MB and 80% of available RAM."},{"line_number":191,"context_line":"   Make the default % a Trove variable."},{"line_number":192,"context_line":" - using appropriate guestagent models for the Couchbase administrative user"},{"line_number":193,"context_line":"   Couchbase should be using it\u0027s own User model rather than relying on"},{"line_number":194,"context_line":"   generic MySQL-object."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_e65d8716","line":191,"range":{"start_line":191,"start_character":20,"end_line":191,"end_character":21},"updated":"2016-11-30 20:55:06.000000000","message":"Is this referencing \u0027cluster_ramsize_pc\u0027 from the proposed change section? We should specify that.","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"56b92478f5766bdf44209d2053313559eea11356","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"References"},{"line_number":290,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":".. [1] Couchbase cluster management: http://docs.couchbase.com/admin/admin/Tasks/cluster-management.html"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. [2] Couchbase CLI reference: http://developer.couchbase.com/documentation/server/4.0/cli/cli-intro.html"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_b2810e92","line":291,"updated":"2016-11-30 20:55:06.000000000","message":"typically references are sited in the spec where they were used right? I don\u0027t see any.","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"6df642118f0f2cb5e7b6e829ba7f28819fa67680","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"References"},{"line_number":290,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":".. [1] Couchbase cluster management: http://docs.couchbase.com/admin/admin/Tasks/cluster-management.html"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. [2] Couchbase CLI reference: http://developer.couchbase.com/documentation/server/4.0/cli/cli-intro.html"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a74a57a_1a9574e3","line":291,"in_reply_to":"5a74a57a_b2810e92","updated":"2016-11-30 21:58:41.000000000","message":"Well, in this case it\u0027s more like \u0027further reading\u0027 section.","commit_id":"5a40fbe27cf9ea065006799ec6612028b9acd1db"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"10b166dccbd949761a52847a8a1a68951b794ea2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"All nodes (including future nodes) need to be able to accommodate"},{"line_number":74,"context_line":"this quota."},{"line_number":75,"context_line":"We therefore require the cluster to be homogeneous."},{"line_number":76,"context_line":"The quota size is configurable by \u0027cluster_ramsize_pc\u0027 Trove configuration as"},{"line_number":77,"context_line":"the percentage of the total node RAM."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da4df55a_e5dc82e6","line":76,"range":{"start_line":76,"start_character":51,"end_line":76,"end_character":53},"updated":"2016-12-23 18:24:02.000000000","message":"maybe spell this out \u0027cluster_ramsize_percent\u0027","commit_id":"477a906a06e7c58cb191ec5f51b09ffc5d58f2c7"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"10b166dccbd949761a52847a8a1a68951b794ea2","unresolved":false,"context_lines":[{"line_number":145,"context_line":"               \u0027.couchbase.guestagent.CouchbaseGuestAgentStrategy\u0027,"},{"line_number":146,"context_line":"               help\u003d\u0027Class that implements datastore-specific Guest Agent API \u0027"},{"line_number":147,"context_line":"                    \u0027logic.\u0027),"},{"line_number":148,"context_line":"    cfg.IntOpt(\u0027cluster_ramsize_pc\u0027, default\u003d80, min\u003d0, max\u003d80,"},{"line_number":149,"context_line":"               help\u003d\u0027Per node RAM quota in for the Data service expressed as a\u0027"},{"line_number":150,"context_line":"               \u0027 percentage of the available memory.\u0027"},{"line_number":151,"context_line":"               \u0027 Minimum of 256MB will be used if the given percentage amounts\u0027"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da4df55a_a5e99a82","line":148,"range":{"start_line":148,"start_character":16,"end_line":148,"end_character":34},"updated":"2016-12-23 18:24:02.000000000","message":"see above, we wouldn\u0027t want people to think they couldn\u0027t run this on a mac ;)","commit_id":"477a906a06e7c58cb191ec5f51b09ffc5d58f2c7"}]}
