)]}'
{"specs/kilo/cassandra-cluster.rst":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":10,"context_line":".."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":"Implement cassandra cluster provisioning"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"https://blueprints.launchpad.net/trove/+spec/cassandra-cluster"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_076ea601","line":13,"updated":"2014-09-22 17:59:29.000000000","message":"capitalization","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8c97201d0e04b6d21a11fdc9387e1e3d8bfa7b8b","unresolved":false,"context_lines":[{"line_number":10,"context_line":".."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13,"context_line":"Implement cassandra cluster provisioning"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"https://blueprints.launchpad.net/trove/+spec/cassandra-cluster"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_ab07291b","line":13,"in_reply_to":"da9df570_076ea601","updated":"2014-09-24 11:55:44.000000000","message":"Done","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Among all overcloud applications (such as Click-a-Tell, Reddit), that are using OpenStack is service layer, there are lots of applications"},{"line_number":20,"context_line":"that were designed to work with NoSQL, in this case - with Cassandra, databases."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The choise of Cassandra was made from next considerations::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":" - flat deployement schema"},{"line_number":25,"context_line":" - simple scale up/down procedure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_c763be18","line":22,"updated":"2014-09-22 17:59:29.000000000","message":"The commercial for Cassandra and its benefits are not germane to the specification at hand.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8c97201d0e04b6d21a11fdc9387e1e3d8bfa7b8b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Among all overcloud applications (such as Click-a-Tell, Reddit), that are using OpenStack is service layer, there are lots of applications"},{"line_number":20,"context_line":"that were designed to work with NoSQL, in this case - with Cassandra, databases."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The choise of Cassandra was made from next considerations::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":" - flat deployement schema"},{"line_number":25,"context_line":" - simple scale up/down procedure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_8e36f3e5","line":22,"in_reply_to":"da9df570_c763be18","updated":"2014-09-24 11:55:44.000000000","message":"This is not a commertial, this is an explanation why C* was picked, but not, for example, Redis.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL eco-system."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_a77ebaac","line":44,"updated":"2014-09-22 17:59:29.000000000","message":"I think we should stay away from characterizing and comparing one solution against the other. It is not relevant to the specification.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"8c97201d0e04b6d21a11fdc9387e1e3d8bfa7b8b","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore in the NoSQL eco-system."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_ee4e9f6e","line":44,"in_reply_to":"da9df570_a77ebaac","updated":"2014-09-24 11:55:44.000000000","message":"Done","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"   - cluster instance provisioning"},{"line_number":68,"context_line":"   - post-provisioning configuration (gathering required info, such as instance IPs, rendering configuration template with collected data, applying rendered template to each of instances)"},{"line_number":69,"context_line":"   - cluster deployment verification"},{"line_number":70,"context_line":" - Guestagent strategy (needs to handle RPC API calls from Taskmanager). Includes specific PRC API calls implementation."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Cluster quota usage"},{"line_number":73,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_675bf254","line":70,"updated":"2014-09-22 17:59:29.000000000","message":"RPC?","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"6b1de4198908e3989d849d7394f901d32e30d24f","unresolved":false,"context_lines":[{"line_number":67,"context_line":"   - cluster instance provisioning"},{"line_number":68,"context_line":"   - post-provisioning configuration (gathering required info, such as instance IPs, rendering configuration template with collected data, applying rendered template to each of instances)"},{"line_number":69,"context_line":"   - cluster deployment verification"},{"line_number":70,"context_line":" - Guestagent strategy (needs to handle RPC API calls from Taskmanager). Includes specific PRC API calls implementation."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Cluster quota usage"},{"line_number":73,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_82aa8417","line":70,"in_reply_to":"da9df570_675bf254","updated":"2014-09-22 18:29:27.000000000","message":"see Guestagent section","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Cluster quota usage"},{"line_number":73,"context_line":"-------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Cassandra cluster doesn\u0027t require additonal servers to keep cluster alive (see mongod sharding)."},{"line_number":76,"context_line":"Minimum cluster size - 3 instances."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_e7360203","line":75,"updated":"2014-09-22 17:59:29.000000000","message":"what does this mean? I can\u0027t understand the relevance to the topic \"quota usage\".","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"6b1de4198908e3989d849d7394f901d32e30d24f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Cluster quota usage"},{"line_number":73,"context_line":"-------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Cassandra cluster doesn\u0027t require additonal servers to keep cluster alive (see mongod sharding)."},{"line_number":76,"context_line":"Minimum cluster size - 3 instances."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_0245b46f","line":75,"in_reply_to":"da9df570_e7360203","updated":"2014-09-22 18:29:27.000000000","message":"if user needs to deploy X nodes - use quota will be decreased for X instances/volumes.\n\nThe opposite situation for mongodb with it QR and CS.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Cassandra snitching"},{"line_number":80,"context_line":"-------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"For production usage DataStax suggests to use Dynamic Snitch. From DataStax docs::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    The dynamic snitch is enabled by default and is recommended for use in most deployments."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_872ff6a0","line":82,"updated":"2014-09-22 17:59:29.000000000","message":"Cassandra supports multiple kinds of snitching, why pick this one and not others?","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Cassandra snitching"},{"line_number":80,"context_line":"-------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"For production usage DataStax suggests to use Dynamic Snitch. From DataStax docs::"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    The dynamic snitch is enabled by default and is recommended for use in most deployments."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_e2bb50c2","line":82,"in_reply_to":"da9df570_872ff6a0","updated":"2014-09-22 18:18:48.000000000","message":"Please read links below, i don\u0027t wan\u0027t to do copy-pasting.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e458757a1ac095c14cbe65e1843c5d34972a491a","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    http://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureSnitchDynamic_c.html"},{"line_number":88,"context_line":"    http://www.datastax.com/dev/blog/dynamic-snitching-in-cassandra-past-present-and-future"},{"line_number":89,"context_line":"    http://www.datastax.com/documentation/cassandra/2.0/cassandra/configuration/configCassandra_yaml_r.html?scroll\u003dreference_ds_qfg_n1r_1k__dynamic_snitch_badness_threshold"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Configuration"},{"line_number":93,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_b987be60","line":90,"updated":"2014-09-22 19:07:49.000000000","message":"Add notion about replication setting (only available when keyspace gets created)\n\nChoosing keyspace replication options¶\n\nWhen you create a keyspace, you must define the replica placement strategy class and the number of replicas you want. DataStax recommends choosing NetworkTopologyStrategy for single and multiple data center clusters. This strategy is as easy to use as the SimpleStrategy and allows for expansion to multiple data centers in the future. It is much easier to configure the most flexible replication strategy up front, than to reconfigure replication after you have already loaded data into your cluster.\n\nNetworkTopologyStrategy takes as options the number of replicas you want per data center. Even for single data center (or single node) clusters, you can use this replica placement strategy and just define the number of replicas for one data center. For example:\n\nCREATE KEYSPACE test\n  WITH REPLICATION \u003d {\u0027class\u0027 : \u0027NetworkTopologyStrategy\u0027, \u0027us-east\u0027 : 6};\nOr for a multiple data center cluster:\n\nCREATE KEYSPACE test2\n  WITH REPLICATION \u003d {\u0027class\u0027 : \u0027NetworkTopologyStrategy\u0027, \u0027dc1\u0027 : 3, \u0027dc2\u0027 : 3};\nWhen creating the keyspace, what you name your data centers depends on the snitch you have chosen for your cluster. The data center names must correlate to the snitch you are using in order for replicas to be placed in the correct location.\n\nAs a general rule, the number of replicas should not exceed the number of nodes in a replication group. However, it is possible to increase the number of replicas, and then add the desired number of nodes afterwards. When the replication factor exceeds the number of nodes, writes will be rejected, but reads will still be served as long as the desired consistency level can be met.\n\nIn DataStax Enterprise 3.0.1 and later, the default consistency level has changed from ONE to QUORUM for reads and writes to resolve a problem finding a CassandraFS block when using consistency level ONE on a Hadoop node.\n\nsee http://www.datastax.com/docs/datastax_enterprise3.1/deploy/configuring_replication","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Database"},{"line_number":111,"context_line":"--------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"None"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Public API"},{"line_number":116,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_07130667","line":113,"updated":"2014-09-22 17:59:29.000000000","message":"has to be some change to the database; won\u0027t you be persisting any information in the database?","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Database"},{"line_number":111,"context_line":"--------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"None"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Public API"},{"line_number":116,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_e2e270d4","line":113,"in_reply_to":"da9df570_07130667","updated":"2014-09-22 18:18:48.000000000","message":"there\u0027s no changes to existing model, it\u0027s completely enough to use base instance model.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        },"},{"line_number":133,"context_line":"        \"instances\": ["},{"line_number":134,"context_line":"          {"},{"line_number":135,"context_line":"            \"flavorRef\": \"2\","},{"line_number":136,"context_line":"            \"volume\": {"},{"line_number":137,"context_line":"              \"size\": 100"},{"line_number":138,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_42133c5c","line":135,"updated":"2014-09-22 17:59:29.000000000","message":"if these have to be the same, why repeat them three (or as many) times?","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        },"},{"line_number":133,"context_line":"        \"instances\": ["},{"line_number":134,"context_line":"          {"},{"line_number":135,"context_line":"            \"flavorRef\": \"2\","},{"line_number":136,"context_line":"            \"volume\": {"},{"line_number":137,"context_line":"              \"size\": 100"},{"line_number":138,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_c212ccb3","line":135,"in_reply_to":"da9df570_42133c5c","updated":"2014-09-22 18:18:48.000000000","message":"this was made to fit onto existing framework.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e458757a1ac095c14cbe65e1843c5d34972a491a","unresolved":false,"context_lines":[{"line_number":509,"context_line":"          \"status\": \"ACTIVE\","},{"line_number":510,"context_line":"          \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":511,"context_line":"          \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","},{"line_number":512,"context_line":"          \"shard_id\": \"5415b62f-f301-4e84-ba90-8ab0734d15a7\","},{"line_number":513,"context_line":"          \"name\": \"test_cluster-node-2\","},{"line_number":514,"context_line":"          \"created\": \"2014-04-25T20:19:23\","},{"line_number":515,"context_line":"          \"updated\": \"2014-04-25T20:19:23\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_b9041e16","line":512,"updated":"2014-09-22 19:07:49.000000000","message":"remove this (copied from mongo spec)","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e458757a1ac095c14cbe65e1843c5d34972a491a","unresolved":false,"context_lines":[{"line_number":532,"context_line":"          \"status\": \"ACTIVE\","},{"line_number":533,"context_line":"          \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":534,"context_line":"          \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","},{"line_number":535,"context_line":"          \"shard_id\": \"5415b62f-f301-4e84-ba90-8ab0734d15a7\","},{"line_number":536,"context_line":"          \"name\": \"test_cluster-node-3\","},{"line_number":537,"context_line":"          \"created\": \"2014-04-25T20:19:23\","},{"line_number":538,"context_line":"          \"updated\": \"2014-04-25T20:19:23\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_d909e22d","line":535,"updated":"2014-09-22 19:07:49.000000000","message":"remove this (copied from mongo spec)","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":560,"context_line":"Request::"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    {"},{"line_number":563,"context_line":"      \"add_shard\": {}"},{"line_number":564,"context_line":"    }"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"Note::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_62acc0ee","line":563,"updated":"2014-09-22 17:59:29.000000000","message":"I don\u0027t think cassandra calls it a shard.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":560,"context_line":"Request::"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    {"},{"line_number":563,"context_line":"      \"add_shard\": {}"},{"line_number":564,"context_line":"    }"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"Note::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_8277e401","line":563,"in_reply_to":"da9df570_62acc0ee","updated":"2014-09-22 18:18:48.000000000","message":"see python-troveclient code.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e458757a1ac095c14cbe65e1843c5d34972a491a","unresolved":false,"context_lines":[{"line_number":560,"context_line":"Request::"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    {"},{"line_number":563,"context_line":"      \"add_shard\": {}"},{"line_number":564,"context_line":"    }"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"Note::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_76a72550","line":563,"in_reply_to":"da9df570_8277e401","updated":"2014-09-22 19:07:49.000000000","message":"Need to find another representation for adding another node,\nhttps://github.com/openstack/trove/blob/master/trove/common/apischema.py#L245-L253","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"caf3a62b96506c84ca7317e3e693da2335985954","unresolved":false,"context_lines":[{"line_number":757,"context_line":"Testing"},{"line_number":758,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"For the initial implementation only unit tests would be proposed since clustering tests implementation is driven by::"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"  - Auston McReynolds"},{"line_number":763,"context_line":"  - Mat Lowery"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_a29ce86a","line":760,"updated":"2014-09-22 18:07:25.000000000","message":"More details about how this testing would be implemented would be valuable.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":757,"context_line":"Testing"},{"line_number":758,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"For the initial implementation only unit tests would be proposed since clustering tests implementation is driven by::"},{"line_number":761,"context_line":""},{"line_number":762,"context_line":"  - Auston McReynolds"},{"line_number":763,"context_line":"  - Mat Lowery"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_025bf487","line":760,"in_reply_to":"da9df570_a29ce86a","updated":"2014-09-22 18:18:48.000000000","message":"ask Auston and Mat, please.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"991f43462777acceb583f6080f276a6d5e5e0be5","unresolved":false,"context_lines":[{"line_number":770,"context_line":"Doc impact will appear to take its place. See Configuration Impact section."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"References"},{"line_number":774,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":775,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_a2e4e83b","line":773,"updated":"2014-09-22 17:59:29.000000000","message":"What about removing and replacing a node?\n\nWhat about data migration and rebalancing?","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"e458757a1ac095c14cbe65e1843c5d34972a491a","unresolved":false,"context_lines":[{"line_number":770,"context_line":"Doc impact will appear to take its place. See Configuration Impact section."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"References"},{"line_number":774,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":775,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_d6129161","line":773,"in_reply_to":"da9df570_a2e4e83b","updated":"2014-09-22 19:07:49.000000000","message":"Clustering API v1 doesn\u0027t support removing/replacing an instance.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"6b1de4198908e3989d849d7394f901d32e30d24f","unresolved":false,"context_lines":[{"line_number":770,"context_line":"Doc impact will appear to take its place. See Configuration Impact section."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"References"},{"line_number":774,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":775,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_f65cf527","line":773,"in_reply_to":"da9df570_a2e4e83b","updated":"2014-09-22 18:29:27.000000000","message":"Will add section about deletion workflow","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"d44f28f516cb6eaff7aeec5f16870d9817a96508","unresolved":false,"context_lines":[{"line_number":770,"context_line":"Doc impact will appear to take its place. See Configuration Impact section."},{"line_number":771,"context_line":""},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"References"},{"line_number":774,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":775,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_02e93480","line":773,"in_reply_to":"da9df570_a2e4e83b","updated":"2014-09-22 18:18:48.000000000","message":"[1] and [2] - clustering v1 doesn\u0027t support such.","commit_id":"b5d3721662035faa635cf60f9fcf5f5146e0043d"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a8946a2881c2c110eadd4b25cf507c0bf480937","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Notes::"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":" - Minimum flavor for cluster node should contain at least 4Gb RAM"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":" - Creates a cluster, with a 3 nodes, each cluster memer with the same flavor (memory + vcpu) and volume-size."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_82b0dfde","line":234,"updated":"2014-10-20 18:23:42.000000000","message":"how will this be enforced considering we don\u0027t support flavor minimums for single instances, much less clusters?","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"43a7eeda33ec861c299039e67a21e71660635678","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Notes::"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":" - Minimum flavor for cluster node should contain at least 4Gb RAM"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":" - Creates a cluster, with a 3 nodes, each cluster memer with the same flavor (memory + vcpu) and volume-size."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_25180681","line":234,"in_reply_to":"9aa7fdbe_82b0dfde","updated":"2014-10-20 20:36:18.000000000","message":"Since current framework relays on strategies we\u0027re free to add logic that restricts flavor RAM size.","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a8946a2881c2c110eadd4b25cf507c0bf480937","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        \"ip\": [\"10.0.0.1\", \"10.0.0.2\", \"10.0.0.3\",],"},{"line_number":273,"context_line":"        \"instances\": ["},{"line_number":274,"context_line":"          {"},{"line_number":275,"context_line":"            \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":276,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":277,"context_line":"            \"flavor\": {"},{"line_number":278,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_e2c60b49","line":275,"updated":"2014-10-20 18:23:42.000000000","message":"instance.name should exist for each in instance[]","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"43a7eeda33ec861c299039e67a21e71660635678","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        \"ip\": [\"10.0.0.1\", \"10.0.0.2\", \"10.0.0.3\",],"},{"line_number":273,"context_line":"        \"instances\": ["},{"line_number":274,"context_line":"          {"},{"line_number":275,"context_line":"            \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":276,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":277,"context_line":"            \"flavor\": {"},{"line_number":278,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_65092e31","line":275,"in_reply_to":"9aa7fdbe_e2c60b49","updated":"2014-10-20 20:36:18.000000000","message":"agreed.","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a8946a2881c2c110eadd4b25cf507c0bf480937","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        \"id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","},{"line_number":573,"context_line":"        \"task\": {"},{"line_number":574,"context_line":"          \"id\": 4,"},{"line_number":575,"context_line":"          \"name\": \"ADDING_SHARD\","},{"line_number":576,"context_line":"          \"description\": \"Adding a node to the cluster.\""},{"line_number":577,"context_line":"        },"},{"line_number":578,"context_line":"        \"name\": \"products\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_25aba6d9","line":575,"updated":"2014-10-20 18:23:42.000000000","message":"shouldn\u0027t be add_shard; this is a copy/paste error.","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"43a7eeda33ec861c299039e67a21e71660635678","unresolved":false,"context_lines":[{"line_number":572,"context_line":"        \"id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","},{"line_number":573,"context_line":"        \"task\": {"},{"line_number":574,"context_line":"          \"id\": 4,"},{"line_number":575,"context_line":"          \"name\": \"ADDING_SHARD\","},{"line_number":576,"context_line":"          \"description\": \"Adding a node to the cluster.\""},{"line_number":577,"context_line":"        },"},{"line_number":578,"context_line":"        \"name\": \"products\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aa7fdbe_8506121f","line":575,"in_reply_to":"9aa7fdbe_25aba6d9","updated":"2014-10-20 20:36:18.000000000","message":"Agreed.\nI will add new cluster task for it.","commit_id":"4530dbb46dec410141170eb132b28ecfe1faf5eb"},{"author":{"_account_id":8188,"name":"Ilya Sviridov","email":"sviridov.ilya@gmail.com","username":"isviridov"},"change_message_id":"c269a90acd91b818eeb2a33166a7cf5cae68c750","unresolved":false,"context_lines":[{"line_number":261,"context_line":""},{"line_number":262,"context_line":" - Minimum flavor for cluster node should contain at least 4Gb RAM"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":" - Creates a cluster, with a 3 nodes, each cluster memer with the same flavor (memory + vcpu) and volume-size."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":" - The name of each instance will be automatically generated; it will be the \u003ccluster_name\u003e-node-\u003cinstance_num\u003e"},{"line_number":267,"context_line":"    In this example, the instance names will be \"test_cluster-node-1\", \"test_cluster-node-2\", and \"test_cluster-node-3\"."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_e3fd75b2","line":264,"updated":"2014-10-27 11:39:01.000000000","message":"typo: member","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8188,"name":"Ilya Sviridov","email":"sviridov.ilya@gmail.com","username":"isviridov"},"change_message_id":"c269a90acd91b818eeb2a33166a7cf5cae68c750","unresolved":false,"context_lines":[{"line_number":266,"context_line":" - The name of each instance will be automatically generated; it will be the \u003ccluster_name\u003e-node-\u003cinstance_num\u003e"},{"line_number":267,"context_line":"    In this example, the instance names will be \"test_cluster-node-1\", \"test_cluster-node-2\", and \"test_cluster-node-3\"."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":" - Flavor and volume-size must be identical for all instances in cluster for predictable perfomance."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":" - The number of instances in a cluster must be at least 3."},{"line_number":272,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_837f4914","line":269,"updated":"2014-10-27 11:39:01.000000000","message":"Is it expected to use Cinder volumes? Will it be possible to run C* on ephemeral storage?","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"cd27c42ad6fdd341b6c7800536ad7bdce4570289","unresolved":false,"context_lines":[{"line_number":266,"context_line":" - The name of each instance will be automatically generated; it will be the \u003ccluster_name\u003e-node-\u003cinstance_num\u003e"},{"line_number":267,"context_line":"    In this example, the instance names will be \"test_cluster-node-1\", \"test_cluster-node-2\", and \"test_cluster-node-3\"."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":" - Flavor and volume-size must be identical for all instances in cluster for predictable perfomance."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":" - The number of instances in a cluster must be at least 3."},{"line_number":272,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_43d1e1cb","line":269,"in_reply_to":"9aa7fdbe_837f4914","updated":"2014-10-27 13:17:17.000000000","message":"By the defaul C* instance comes with Cinder volumes.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":448,"context_line":"          },"},{"line_number":449,"context_line":"          \"instances\": ["},{"line_number":450,"context_line":"            {"},{"line_number":451,"context_line":"              \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":452,"context_line":"              \"status\": \"ACTIVE\","},{"line_number":453,"context_line":"              \"flavor\": {"},{"line_number":454,"context_line":"                \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_ccfd03b3","line":451,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":459,"context_line":"              }"},{"line_number":460,"context_line":"            },"},{"line_number":461,"context_line":"            {"},{"line_number":462,"context_line":"              \"id\": \"965ef811-7c1d-47fc-89f2-a89dfdd23ef2\","},{"line_number":463,"context_line":"              \"status\": \"ACTIVE\","},{"line_number":464,"context_line":"              \"flavor\": {"},{"line_number":465,"context_line":"                \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_ec2f273d","line":462,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":470,"context_line":"              }"},{"line_number":471,"context_line":"            },"},{"line_number":472,"context_line":"            {"},{"line_number":473,"context_line":"              \"id\": \"3642f41c-e8ad-4164-a089-3891bf7f2d2b\","},{"line_number":474,"context_line":"              \"status\": \"ACTIVE\","},{"line_number":475,"context_line":"              \"flavor\": {"},{"line_number":476,"context_line":"                \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_0c338bab","line":473,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":606,"context_line":"          \"name\": \"ADDING_NODE\","},{"line_number":607,"context_line":"          \"description\": \"Adding a node to the cluster.\""},{"line_number":608,"context_line":"        },"},{"line_number":609,"context_line":"        \"name\": \"products\","},{"line_number":610,"context_line":"        \"created\": \"2014-04-25T20:19:23\","},{"line_number":611,"context_line":"        \"updated\": \"2014-04-25T20:19:23\","},{"line_number":612,"context_line":"        \"links\": [{...}],"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_4c291336","line":609,"updated":"2014-10-27 10:16:04.000000000","message":"test_cluster","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        \"ip\": [\"10.0.0.1\", \"10.0.0.2\", \"10.0.0.3\"],"},{"line_number":618,"context_line":"        \"instances\": ["},{"line_number":619,"context_line":"          {"},{"line_number":620,"context_line":"            \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":621,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":622,"context_line":"            \"flavor\": {"},{"line_number":623,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_ac199f23","line":620,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            }"},{"line_number":629,"context_line":"          },"},{"line_number":630,"context_line":"          {"},{"line_number":631,"context_line":"            \"id\": \"965ef811-7c1d-47fc-89f2-a89dfdd23ef2\","},{"line_number":632,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":633,"context_line":"            \"flavor\": {"},{"line_number":634,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_cc1423eb","line":631,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"          },"},{"line_number":641,"context_line":"          {"},{"line_number":642,"context_line":"            \"id\": \"3642f41c-e8ad-4164-a089-3891bf7f2d2b\","},{"line_number":643,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":644,"context_line":"            \"flavor\": {"},{"line_number":645,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_0cdaab4b","line":642,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":650,"context_line":"            }"},{"line_number":651,"context_line":"          },"},{"line_number":652,"context_line":"          {"},{"line_number":653,"context_line":"            \"id\": \"1557208f-5c23-4537-a9f2-52a69db38d3a\","},{"line_number":654,"context_line":"            \"status\": \"BUILD\","},{"line_number":655,"context_line":"            \"flavor\": {"},{"line_number":656,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_4ce033fa","line":653,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":661,"context_line":"            }"},{"line_number":662,"context_line":"          },"},{"line_number":663,"context_line":"          {"},{"line_number":664,"context_line":"            \"id\": \"badc9861-9f68-448d-9f48-7acdcd753208\","},{"line_number":665,"context_line":"            \"status\": \"BUILD\","},{"line_number":666,"context_line":"            \"flavor\": {"},{"line_number":667,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_acf0bfc9","line":664,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":672,"context_line":"            }"},{"line_number":673,"context_line":"          },"},{"line_number":674,"context_line":"          {"},{"line_number":675,"context_line":"            \"id\": \"a7f78b7c-6282-4b34-8060-693f2b67ef6b\","},{"line_number":676,"context_line":"            \"status\": \"BUILD\","},{"line_number":677,"context_line":"            \"flavor\": {"},{"line_number":678,"context_line":"              \"id\": \"2\","}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_cceb43da","line":675,"updated":"2014-10-27 10:16:04.000000000","message":"missing instance name.","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"344c351337d5742437c8307411eab6abd3f698e0","unresolved":false,"context_lines":[{"line_number":727,"context_line":"------------"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"From API service to Taskmanager service"},{"line_number":730,"context_line":" - create_cluster"},{"line_number":731,"context_line":""},{"line_number":732,"context_line":"Guest Agent"},{"line_number":733,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_acc7df62","line":730,"updated":"2014-10-27 10:16:04.000000000","message":"- add_node","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8188,"name":"Ilya Sviridov","email":"sviridov.ilya@gmail.com","username":"isviridov"},"change_message_id":"c269a90acd91b818eeb2a33166a7cf5cae68c750","unresolved":false,"context_lines":[{"line_number":775,"context_line":"Dependencies"},{"line_number":776,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"To improve Cassndra initial provisioning procedure and avoid temporary SHUTDOWN state given fix must be merged"},{"line_number":779,"context_line":"fix for Cassandra manager datastore status definition https://review.openstack.org/#/c/107100/"},{"line_number":780,"context_line":""},{"line_number":781,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_e3ebb5d9","line":778,"updated":"2014-10-27 11:39:01.000000000","message":"typo: Cassandra","commit_id":"892034122438cc6e2e9237a1dbe33ad75c2bc0c9"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9efc5a5198f88e2db954d9a3095baeca36baaa2e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    - Setup endpoint provider"},{"line_number":141,"context_line":"    - Apply new configuration file"},{"line_number":142,"context_line":"    - Start instance datastore on each of N instances"},{"line_number":143,"context_line":"    - Verify that cluster is running (using nodetool utility)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    Once instances established themselves in the ring we might need to check cluster status by using nodetool utility::"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9aa7fdbe_686b101e","line":143,"updated":"2014-10-27 20:42:37.000000000","message":"For each instance of cluster:\n- Grab tokens\n- Stop cluster datastores\n- Write grabbed tokens into \u0027initial_tokens: \u0027 of conf file.\n- Start datastore","commit_id":"8eb6599229ca3cf2bb53d7233b22bebe7f20a5cf"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9efc5a5198f88e2db954d9a3095baeca36baaa2e","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"  instance_flavor_cpu_cores_limit - limits (lower limit) flavor CPU cores per instance."},{"line_number":196,"context_line":"     Default: 2"},{"line_number":197,"context_line":"     Type: Integer"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9aa7fdbe_280f4889","line":195,"updated":"2014-10-27 20:42:37.000000000","message":"Propose new configuration option that restricts size of initial cluster\nhttps://gist.github.com/denismakogon/f95258fc5e3312b87cee\n\nMin cluster size - 1 instance.","commit_id":"8eb6599229ca3cf2bb53d7233b22bebe7f20a5cf"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":25,"context_line":" - simple scale up/down procedure"},{"line_number":26,"context_line":" - easy maintenance and backuping"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Useful links::"},{"line_number":29,"context_line":"    http://cassandra.apache.org/"},{"line_number":30,"context_line":"    http://planetcassandra.org/blog/introduction-to-cassandra-clusters/"},{"line_number":31,"context_line":"    http://pulasthisupun.blogspot.com/2013/12/setting-up-local-3-node-cassandra.html"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_e73ff8b3","line":28,"updated":"2014-10-29 14:19:37.000000000","message":"if there are specific things that you\u0027d like to point to in these documents, maybe highlight those and move all these links to the References section?\n\nSuch as:\n\n\"For a detailed description of the scale up and down procedure see [1], [3] and [5]\"\n\nand then have\n\n[1] http://www.somewhere.com/how-to-scale-up-cassandra.html\n\n[2] http://woodworking.com/how-to-make-a-bookshelf.html\n\n[3] http://www.somewhere.com/how-to-scale-out-cass.html\n\netc.,","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":25,"context_line":" - simple scale up/down procedure"},{"line_number":26,"context_line":" - easy maintenance and backuping"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Useful links::"},{"line_number":29,"context_line":"    http://cassandra.apache.org/"},{"line_number":30,"context_line":"    http://planetcassandra.org/blog/introduction-to-cassandra-clusters/"},{"line_number":31,"context_line":"    http://pulasthisupun.blogspot.com/2013/12/setting-up-local-3-node-cassandra.html"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_7f26306a","line":28,"in_reply_to":"9aa7fdbe_e73ff8b3","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Problem description"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_478c4480","line":42,"updated":"2014-10-29 14:19:37.000000000","message":"a lot of\n\ndelete \"for\"","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Problem description"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_bc1423f6","line":42,"in_reply_to":"9aa7fdbe_478c4480","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_87d46c48","line":44,"updated":"2014-10-29 14:19:37.000000000","message":"I\u0027m unsure how this is a part of \"problem description\".\n\nIn general, this and the previous section appear to be a little long and rambling.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"There are alot overcloud projects that are requesting for NoSQL backend."},{"line_number":43,"context_line":"This is perfect place to propose Trove as deployment tool, but before that we need to cover customer use cases with NoSQL deployment."},{"line_number":44,"context_line":"From customer and maintainer point of view - Cassandra is the easiest to deploy-and-maintain datastore."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_5c2c1f4b","line":44,"in_reply_to":"9aa7fdbe_87d46c48","updated":"2014-10-30 13:36:35.000000000","message":"fixed","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Useful links::"},{"line_number":52,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_27bd8003","line":49,"updated":"2014-10-29 14:19:37.000000000","message":"Ceilometer prefers MongoDB, right?","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aa767de1378937478b6875f9bfac600e09bddd4b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"For now Trove supports only single instance provisioning of Cassandra datastore - this is a big problem for production deployments."},{"line_number":47,"context_line":"In favor of stability, data distribution and protection Trove must support clustering for Cassandra datastore to meet market needs."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Useful links::"},{"line_number":52,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_d402936e","line":49,"in_reply_to":"9aa7fdbe_27bd8003","updated":"2014-10-29 21:02:47.000000000","message":"It prefers, but as it was said, Ceilometer would use magnetodb once BP gets approved.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Useful links::"},{"line_number":52,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver"},{"line_number":53,"context_line":"    https://github.com/stackforge/magnetodb/tree/master/magnetodb/storage/driver/cassandra"},{"line_number":54,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/support-magnetodb"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_6736a8b6","line":51,"updated":"2014-10-29 14:19:37.000000000","message":"please move links to references.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Also, there are several projects, from OpenStack ecosystem, such as Ceilometer and MagnetoDB that may work with Cassandra as well."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Useful links::"},{"line_number":52,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/cassandra-driver"},{"line_number":53,"context_line":"    https://github.com/stackforge/magnetodb/tree/master/magnetodb/storage/driver/cassandra"},{"line_number":54,"context_line":"    https://blueprints.launchpad.net/ceilometer/+spec/support-magnetodb"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_9c0f67e1","line":51,"in_reply_to":"9aa7fdbe_6736a8b6","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"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"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Since Trove provides well-designed framework for implementing clustering for different datastores certain"},{"line_number":61,"context_line":"efforts needs to be applied to accomplish clustering procedure for Cassandra datastore."},{"line_number":62,"context_line":"In the list below you can see next development plan::"},{"line_number":63,"context_line":"- API strategy (needs for handling API requests, see base API strategy class https://github.com/openstack/trove/blob/master/trove/common/strategies/base.py )."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_a7dc1048","line":60,"updated":"2014-10-29 14:19:37.000000000","message":"does RST text have to be wrapped?","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"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"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Since Trove provides well-designed framework for implementing clustering for different datastores certain"},{"line_number":61,"context_line":"efforts needs to be applied to accomplish clustering procedure for Cassandra datastore."},{"line_number":62,"context_line":"In the list below you can see next development plan::"},{"line_number":63,"context_line":"- API strategy (needs for handling API requests, see base API strategy class https://github.com/openstack/trove/blob/master/trove/common/strategies/base.py )."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_7c31dba1","line":60,"in_reply_to":"9aa7fdbe_a7dc1048","updated":"2014-10-30 13:36:35.000000000","message":"not quite sure what you mean","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Cassandra replication"},{"line_number":89,"context_line":"---------------------"},{"line_number":90,"context_line":"For those who\u0027s not familiar with Cassandra data structure::"},{"line_number":91,"context_line":"http://www.datastax.com/docs/datastax_enterprise3.1/deploy/configuring_replication"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"According to DataStax docs::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_47c4445f","line":90,"updated":"2014-10-29 14:19:37.000000000","message":"This is a good example of how to use the references.\n\n\"For a detailed description of Cassandra data structures, see [1]\"\n\nand move the link to References.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Cassandra replication"},{"line_number":89,"context_line":"---------------------"},{"line_number":90,"context_line":"For those who\u0027s not familiar with Cassandra data structure::"},{"line_number":91,"context_line":"http://www.datastax.com/docs/datastax_enterprise3.1/deploy/configuring_replication"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"According to DataStax docs::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_bc2b432f","line":90,"in_reply_to":"9aa7fdbe_47c4445f","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"For those who\u0027s not familiar with Cassandra data structure::"},{"line_number":91,"context_line":"http://www.datastax.com/docs/datastax_enterprise3.1/deploy/configuring_replication"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"According to DataStax docs::"},{"line_number":94,"context_line":"    When you create a keyspace, you must define the replica placement strategy class and the"},{"line_number":95,"context_line":"    number of replicas you want. DataStax recommends choosing NetworkTopologyStrategy for single"},{"line_number":96,"context_line":"    and multiple data center clusters. This strategy is as easy to use as the SimpleStrategy and"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_67878813","line":93,"updated":"2014-10-29 14:19:37.000000000","message":"Please provide the URL where this came from.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"HOWTO cluster deployment"},{"line_number":112,"context_line":"------------------------"},{"line_number":113,"context_line":"From DataStax production deployment guide::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    Cassandra performs replication to store multiple copies of data on multiple nodes for reliability and fault tolerance."},{"line_number":116,"context_line":"    To configure replication, you need to choose a data partitioner and replica placement strategy"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_87938c4e","line":113,"updated":"2014-10-29 14:19:37.000000000","message":"please provide link or reference URL","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"HOWTO cluster deployment"},{"line_number":112,"context_line":"------------------------"},{"line_number":113,"context_line":"From DataStax production deployment guide::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    Cassandra performs replication to store multiple copies of data on multiple nodes for reliability and fault tolerance."},{"line_number":116,"context_line":"    To configure replication, you need to choose a data partitioner and replica placement strategy"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_3c1753ef","line":113,"in_reply_to":"9aa7fdbe_87938c4e","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    - partitioner"},{"line_number":130,"context_line":"    - snitch endpoint provider"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    Step-by-Step guide for cluster provisioning"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    - Spin-up N cluster instances."},{"line_number":135,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_67b5c8cf","line":132,"updated":"2014-10-29 14:19:37.000000000","message":"This is a good list!","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    Step-by-Step guide for cluster provisioning"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    - Spin-up N cluster instances."},{"line_number":135,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"},{"line_number":136,"context_line":"    - Stop instance datastore on each of N instances"},{"line_number":137,"context_line":"    - Setup seed_provider"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_a798906b","line":134,"updated":"2014-10-29 14:19:37.000000000","message":"Spin up N instances.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"     Default: 1"},{"line_number":227,"context_line":"     Type: Integer"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"  instance_flavor_cpu_cores_limit - limits (lower limit) flavor CPU cores per instance."},{"line_number":230,"context_line":"     Default: 2"},{"line_number":231,"context_line":"     Type: Integer"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_07215cb4","line":229,"updated":"2014-10-29 14:19:37.000000000","message":"it would be good if you made the word \"cluster\" conspicuous in these configuration parameters.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":226,"context_line":"     Default: 1"},{"line_number":227,"context_line":"     Type: Integer"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"  instance_flavor_cpu_cores_limit - limits (lower limit) flavor CPU cores per instance."},{"line_number":230,"context_line":"     Default: 2"},{"line_number":231,"context_line":"     Type: Integer"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_3fd3c839","line":229,"in_reply_to":"9aa7fdbe_07215cb4","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":237,"context_line":"  cluster_support - describes the availability of clustering feature."},{"line_number":238,"context_line":"     Type: Boolean"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  api_strategy - fully qualified class name of aAPI strategy implementation."},{"line_number":241,"context_line":"     Type: String"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"  taskmanager_strategy - fully qualified class name of a Taskmanager implementation."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_871c6c79","line":240,"updated":"2014-10-29 14:19:37.000000000","message":"an API strategy","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":237,"context_line":"  cluster_support - describes the availability of clustering feature."},{"line_number":238,"context_line":"     Type: Boolean"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  api_strategy - fully qualified class name of aAPI strategy implementation."},{"line_number":241,"context_line":"     Type: String"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"  taskmanager_strategy - fully qualified class name of a Taskmanager implementation."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_7cd8fb53","line":240,"in_reply_to":"9aa7fdbe_871c6c79","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":876,"context_line":""},{"line_number":877,"context_line":"1. Implement API strategy."},{"line_number":878,"context_line":"2. Implement Taskmanager strategy."},{"line_number":879,"context_line":"3. Implement Guestagent strategy."},{"line_number":880,"context_line":""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_ca5bd92c","line":879,"updated":"2014-10-29 14:19:37.000000000","message":"Testing","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"05513ed0565af59c302a8c6c4e242635601b5522","unresolved":false,"context_lines":[{"line_number":876,"context_line":""},{"line_number":877,"context_line":"1. Implement API strategy."},{"line_number":878,"context_line":"2. Implement Taskmanager strategy."},{"line_number":879,"context_line":"3. Implement Guestagent strategy."},{"line_number":880,"context_line":""},{"line_number":881,"context_line":""},{"line_number":882,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_fce30b03","line":879,"in_reply_to":"9aa7fdbe_ca5bd92c","updated":"2014-10-30 13:36:35.000000000","message":"Done","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"c0da156d2a0c98feed66fce60be3b78b0263026b","unresolved":false,"context_lines":[{"line_number":888,"context_line":"Testing"},{"line_number":889,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":890,"context_line":""},{"line_number":891,"context_line":"For the initial implementation only unit tests would be proposed."},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"Minimum Cassandra clustering integration tests requirements"},{"line_number":894,"context_line":"-----------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9aa7fdbe_ea941d8e","line":891,"updated":"2014-10-29 14:19:37.000000000","message":"Why is this?","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"aa767de1378937478b6875f9bfac600e09bddd4b","unresolved":false,"context_lines":[{"line_number":888,"context_line":"Testing"},{"line_number":889,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":890,"context_line":""},{"line_number":891,"context_line":"For the initial implementation only unit tests would be proposed."},{"line_number":892,"context_line":""},{"line_number":893,"context_line":"Minimum Cassandra clustering integration tests requirements"},{"line_number":894,"context_line":"-----------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7a8c0949_6e0e8f36","line":891,"in_reply_to":"9aa7fdbe_ea941d8e","updated":"2014-10-29 21:02:47.000000000","message":"Because Auston is working on integration tests part. So, i don\u0027t want to end up with stilling someones tasks.","commit_id":"817882d9f3ce37f34594811777b5ad7e777389e5"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"b85afc69f7fd1d4d67968b91ede0d5dfefbd1ee1","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Partitioner setting"},{"line_number":169,"context_line":"-------------------"},{"line_number":170,"context_line":"You can use either the Murmur3Partitioner or RandomPartitioner with virtual nodes. More info at [12]."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Snitch setting"},{"line_number":173,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_c5810e4c","line":170,"updated":"2014-10-30 14:19:04.000000000","message":"Maybe mention that Murmur3Partitioner is the default since it\u0027s faster than the old MD5 partitioner.","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"1ee1babdf1d999eabf949c078cc17e132f484441","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Partitioner setting"},{"line_number":169,"context_line":"-------------------"},{"line_number":170,"context_line":"You can use either the Murmur3Partitioner or RandomPartitioner with virtual nodes. More info at [12]."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Snitch setting"},{"line_number":173,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_a103040e","line":170,"in_reply_to":"7a8c0949_01acd89f","updated":"2014-10-31 09:46:12.000000000","message":"Agreed :)","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4add3a8461461285b4ebce1d6e9eced73e70068c","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Partitioner setting"},{"line_number":169,"context_line":"-------------------"},{"line_number":170,"context_line":"You can use either the Murmur3Partitioner or RandomPartitioner with virtual nodes. More info at [12]."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Snitch setting"},{"line_number":173,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_01acd89f","line":170,"in_reply_to":"7a8c0949_c5810e4c","updated":"2014-10-31 09:23:05.000000000","message":"You might take a look at configuration section below, i\u0027ve mentioned Murmur3Partitioner as default. So i don\u0027t really think that it should mentioned twice. Agreed?","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"b85afc69f7fd1d4d67968b91ede0d5dfefbd1ee1","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    The \"Dynamic Snitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"By the default Cassandra single instance comes with SimpleSnith endpoint. See more at [13, 14]."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_25e73242","line":187,"updated":"2014-10-30 14:19:04.000000000","message":"Dynamic snitching is not a snitch, it\u0027s a *wrapper* which provides adaptive behavior on reads. And this monitoring layer is indeed enabled by default.\n\nAs you mention, the default snitch is SimpleSnitch and must be changed.\n\nThe best snitch for a cluster in production is GossipingPropertyFileSnitch. RackInferringSnitch is very handy but can be applied only when servers\u0027 IPs are uniforms.","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4add3a8461461285b4ebce1d6e9eced73e70068c","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    The \"Dynamic Snitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"By the default Cassandra single instance comes with SimpleSnith endpoint. See more at [13, 14]."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_8176083d","line":187,"in_reply_to":"7a8c0949_25e73242","updated":"2014-10-31 09:23:05.000000000","message":"Agreed, we can start with Gossip snitch. I\u0027d suggest to keep SimpleSnitch endpoint by the default. And only if Trove deployer will mention in its configuration files that C* cluster should come up with gossip snitch it\u0027ll be applied to newly provisioned cluster. Agreed?\n\nhttp://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureSnitchGossipPF_c.html","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"1ee1babdf1d999eabf949c078cc17e132f484441","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    The \"Dynamic Snitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"By the default Cassandra single instance comes with SimpleSnith endpoint. See more at [13, 14]."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a8c0949_8106081f","line":187,"in_reply_to":"7a8c0949_8176083d","updated":"2014-10-31 09:46:12.000000000","message":"When talking about Cassandra cluster I think about multi DC deployment, that\u0027s why I mentioned GPFS. But, of course you can leave SimpleSnitch as a default for mono DC deployment.","commit_id":"20dac3f8fde7a6d32013dc397b684a794010b011"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"b06baba4bf6ed06b13d6132b1fef2652ec573172","unresolved":false,"context_lines":[{"line_number":174,"context_line":"A snitch determines which data centers and racks nodes belong to."},{"line_number":175,"context_line":"Applicapable options::"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   - Dynamic snitching"},{"line_number":178,"context_line":"     Monitors the performance of reads from the various replicas and chooses the best replica based on this history."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"   - SimpleSnitch"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_0d9ac86d","line":177,"updated":"2014-11-14 18:15:07.000000000","message":"See \"Dynamic snitching\" at the same level as SimpleSnitch and GossipingPropertyFileSnitch could be confusing. \n\nNote that the following documentation is misleading and may be the source of the confusion:\nhttp://www.datastax.com/documentation/cassandra/2.0/cassandra/architecture/architectureSnitchesAbout_c.html\n\nValues for \"endpoint_snitch\" option in cassandra.yaml are:\n * SimpleSnitch\n * GossipingPropertyFileSnitch\n * PropertyFileSnitch\n * RackInferringSnitch\n * Cloud provider specific: Ec2Snitch, GoogleCloudSnitch, ...\n * A full Java class name for a custom snitch\n\nIn the past, dynamic snitching was disabled by default and we had to set \"dynamic_snitch: true\" in cassandra.yaml to enable it.\n\nSince Cassandra 1.0.0 dynamic snitching is enabled by default and the \"dynamic_snitch\" setting has been removed from the default cassandra.yaml to avoid mistakes (https://issues.apache.org/jira/browse/CASSANDRA-3229). \n\nSo, to sum up, dynamic snitching is enabled regardless of the chosen snitch.","commit_id":"d392bf71493107c7eb1cc0090d24718067e98496"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"643cc8ec0aa8dc4a56cbc44ff5a72941c609c280","unresolved":false,"context_lines":[{"line_number":174,"context_line":"A snitch determines which data centers and racks nodes belong to."},{"line_number":175,"context_line":"Applicapable options::"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   - Dynamic snitching"},{"line_number":178,"context_line":"     Monitors the performance of reads from the various replicas and chooses the best replica based on this history."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"   - SimpleSnitch"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_cd1c1c6d","line":177,"in_reply_to":"5a890539_0d9ac86d","updated":"2014-11-17 12:43:24.000000000","message":"yes, correct, thanks for pointing this out.","commit_id":"d392bf71493107c7eb1cc0090d24718067e98496"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"b06baba4bf6ed06b13d6132b1fef2652ec573172","unresolved":false,"context_lines":[{"line_number":183,"context_line":"   - GossipingPropertyFileSnitch"},{"line_number":184,"context_line":"     Automatically updates all nodes using gossip when adding new nodes."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"For production usage DataStax suggests to use \"Dynamic Snitch\" strategy. From DataStax docs::"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    The \"GossipingPropertyFileSnitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_ed9c9c6c","line":186,"updated":"2014-11-14 18:15:07.000000000","message":"Ditto. I think we could ignore the dynamic snitching part and just mention snitches below.","commit_id":"d392bf71493107c7eb1cc0090d24718067e98496"},{"author":{"_account_id":8876,"name":"Romain Hardouin","email":"romain_hardouin@yahoo.fr","username":"romainh"},"change_message_id":"b06baba4bf6ed06b13d6132b1fef2652ec573172","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"For production usage DataStax suggests to use \"Dynamic Snitch\" strategy. From DataStax docs::"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    The \"GossipingPropertyFileSnitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"By the default Cassandra single instance comes with SimpleSnith endpoint. See more at [13, 14]."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_cd936059","line":188,"updated":"2014-11-14 18:15:07.000000000","message":"The default snitch is SimpleSnitch so I think you mean:\nThe \"GossipingPropertyFileSnitch\" is *not* enabled by default *but* is recommended for use in most deployments.","commit_id":"d392bf71493107c7eb1cc0090d24718067e98496"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"643cc8ec0aa8dc4a56cbc44ff5a72941c609c280","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"For production usage DataStax suggests to use \"Dynamic Snitch\" strategy. From DataStax docs::"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    The \"GossipingPropertyFileSnitch\" is enabled by default and is recommended for use in most deployments."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"By the default Cassandra single instance comes with SimpleSnith endpoint. See more at [13, 14]."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"5a890539_6d0c083c","line":188,"in_reply_to":"5a890539_cd936059","updated":"2014-11-17 12:43:24.000000000","message":"oh, yes, true!","commit_id":"d392bf71493107c7eb1cc0090d24718067e98496"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":54,"context_line":"- cluster deployment verification"},{"line_number":55,"context_line":"- Guestagent strategy (needs to handle RPC API calls from Taskmanager). Includes specific RPC API calls implementation."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Cluster task"},{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"We need to add new cluster task::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_73b2144a","line":57,"updated":"2014-11-25 22:50:23.000000000","message":"this is interesting.\n\nsay we all agree that payloads shouldn\u0027t be datastore-agnostic (e.g. add_node and add_member and add_arbiter and add_shard all co-exist).\n\ndoes this necessitate a unique cluster task state? something to ponder...","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3fad43cb37ef4734c4b47831f5dd9ae2b673ae00","unresolved":false,"context_lines":[{"line_number":54,"context_line":"- cluster deployment verification"},{"line_number":55,"context_line":"- Guestagent strategy (needs to handle RPC API calls from Taskmanager). Includes specific RPC API calls implementation."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Cluster task"},{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"We need to add new cluster task::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_f646d1bf","line":57,"in_reply_to":"5a890539_2aeac1d7","updated":"2014-11-26 19:16:22.000000000","message":"well, i\u0027m looking for you to consider the tradeoffs and explain them in the spec.\n\nexample: having granular states is a benefit to the ui and for semantic parsing, but programmatically speaking, it\u0027s a bit more complicated (think of how often we rely on BUILD in the code vs. multiple permutations of BUILD)","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"- cluster deployment verification"},{"line_number":55,"context_line":"- Guestagent strategy (needs to handle RPC API calls from Taskmanager). Includes specific RPC API calls implementation."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Cluster task"},{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"We need to add new cluster task::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_2aeac1d7","line":57,"in_reply_to":"5a890539_73b2144a","updated":"2014-11-26 08:55:52.000000000","message":"actually I\u0027m fine with adding new task.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    - Spin up N instances."},{"line_number":116,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"},{"line_number":117,"context_line":"    - Setup seed_provider"},{"line_number":118,"context_line":"    - Setup vnodes"},{"line_number":119,"context_line":"    - Setup partitioner"},{"line_number":120,"context_line":"    - Setup endpoint provider"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_93d2205a","line":117,"updated":"2014-11-25 22:50:23.000000000","message":"how are you determining which nodes are seeds?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"db7ec3a8bc72bd6026fe53a14412f40b588e040e","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    - Spin up N instances."},{"line_number":116,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"},{"line_number":117,"context_line":"    - Setup seed_provider"},{"line_number":118,"context_line":"    - Setup vnodes"},{"line_number":119,"context_line":"    - Setup partitioner"},{"line_number":120,"context_line":"    - Setup endpoint provider"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_39104aab","line":117,"in_reply_to":"5a890539_76e661b2","updated":"2014-11-26 19:55:27.000000000","message":"i made progress on this question, take a look at latest patchset","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    - Spin up N instances."},{"line_number":116,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"},{"line_number":117,"context_line":"    - Setup seed_provider"},{"line_number":118,"context_line":"    - Setup vnodes"},{"line_number":119,"context_line":"    - Setup partitioner"},{"line_number":120,"context_line":"    - Setup endpoint provider"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_ca277d10","line":117,"in_reply_to":"5a890539_93d2205a","updated":"2014-11-26 08:55:52.000000000","message":"All Nodes are seeds. It is a best practice to have more than one seed node per data center. Making seed provider configurable would eventually require additional complicated logic to handle inappropriate cases. So, it\u0027s definitely ok to make all cluster nodes as seeds.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3fad43cb37ef4734c4b47831f5dd9ae2b673ae00","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    - Spin up N instances."},{"line_number":116,"context_line":"    - Once N instances are up and running, collect their IPs to form seed provider"},{"line_number":117,"context_line":"    - Setup seed_provider"},{"line_number":118,"context_line":"    - Setup vnodes"},{"line_number":119,"context_line":"    - Setup partitioner"},{"line_number":120,"context_line":"    - Setup endpoint provider"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_76e661b2","line":117,"in_reply_to":"5a890539_ca277d10","updated":"2014-11-26 19:16:22.000000000","message":"this seems suspicious, because i see no official literature suggesting this. in fact, i see blogs warning against this: http://plurpe.blogspot.com/2012/06/pay-attention-to-seeds-in-your.html (granted it\u0027s an old blog, but it raises a red flag).","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  cluster_size - limits(lower limit) cluster size."},{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_68513f2f","line":192,"updated":"2014-11-25 22:50:23.000000000","message":"shouldn\u0027t this be 3?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  cluster_size - limits(lower limit) cluster size."},{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_8a81f5c4","line":192,"in_reply_to":"5a890539_68513f2f","updated":"2014-11-26 08:55:52.000000000","message":"No, because you can setup cluster from one node, and this is a valid use case.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3fad43cb37ef4734c4b47831f5dd9ae2b673ae00","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  cluster_size - limits(lower limit) cluster size."},{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_96ebcd77","line":192,"in_reply_to":"5a890539_8a81f5c4","updated":"2014-11-26 19:16:22.000000000","message":"i\u0027m confused then, because earlier in this doc you explicitly state:\n\n    Minimum cluster size - 3 instances.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"db7ec3a8bc72bd6026fe53a14412f40b588e040e","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  cluster_size - limits(lower limit) cluster size."},{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_f91de2bf","line":192,"in_reply_to":"5a890539_96ebcd77","updated":"2014-11-26 19:55:27.000000000","message":"Cassadnra docs doesn\u0027t have any limitations about cluster instance number limitations (the lowest limit -1 instance, because when you\u0027re using virtual nodes your single instance becomes a set of virtual node that maintain it own key range.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"09d89dfb0176789649ff4e4551638df2cee37ce6","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"To enable clustering for Cassandra datastore next options needs to be added::"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"  cluster_size - limits(lower limit) cluster size."},{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_8c0f3a88","line":192,"in_reply_to":"5a890539_f91de2bf","updated":"2014-11-26 21:17:38.000000000","message":"i understand the cassandra limitations, my problem was that this spec in one section claimed the minimum cluster size was 3, but in another it claims it\u0027s 1. it looks like you\u0027ve fixed this error in the latest patch-set.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":193,"context_line":"     Default: 1"},{"line_number":194,"context_line":"     Type: Integer"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  cluster_instance_flavor_cpu_cores_limit - limits (lower limit) flavor CPU cores per instance."},{"line_number":197,"context_line":"     Default: 2"},{"line_number":198,"context_line":"     Type: Integer"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_285bb754","line":196,"updated":"2014-11-25 22:50:23.000000000","message":"disagree with this config.\n\nthe associate-flavors-with-datastores blueprint should be tasked with solving this problem.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":197,"context_line":"     Default: 2"},{"line_number":198,"context_line":"     Type: Integer"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"  cluster_instance_flavor_ram_limit - limits (lower limit) flavor RAM per instance."},{"line_number":201,"context_line":"     Default: 4"},{"line_number":202,"context_line":"     Type: Integer"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_4856432b","line":200,"updated":"2014-11-25 22:50:23.000000000","message":"disagree with this config.\n\nthe associate-flavors-with-datastores blueprint should be tasked with solving this problem.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":221,"context_line":"     Default: org.apache.cassandra.dht.Murmur3Partitioner"},{"line_number":222,"context_line":"     Type: String"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  endpoint_snitch_strategy - determines which data centers and racks are written to and read from."},{"line_number":225,"context_line":"     Default: SimpleSnitch"},{"line_number":226,"context_line":"     Type: String"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_134d503e","line":224,"updated":"2014-11-25 22:50:23.000000000","message":"will validation be added to this to prevent strategies that won\u0027t work (given the way the bits are layed out)?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":221,"context_line":"     Default: org.apache.cassandra.dht.Murmur3Partitioner"},{"line_number":222,"context_line":"     Type: String"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  endpoint_snitch_strategy - determines which data centers and racks are written to and read from."},{"line_number":225,"context_line":"     Default: SimpleSnitch"},{"line_number":226,"context_line":"     Type: String"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_8a58158b","line":224,"in_reply_to":"5a890539_134d503e","updated":"2014-11-26 08:55:52.000000000","message":"Yes, of course.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3fad43cb37ef4734c4b47831f5dd9ae2b673ae00","unresolved":false,"context_lines":[{"line_number":221,"context_line":"     Default: org.apache.cassandra.dht.Murmur3Partitioner"},{"line_number":222,"context_line":"     Type: String"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  endpoint_snitch_strategy - determines which data centers and racks are written to and read from."},{"line_number":225,"context_line":"     Default: SimpleSnitch"},{"line_number":226,"context_line":"     Type: String"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_96a2ed49","line":224,"in_reply_to":"5a890539_8a58158b","updated":"2014-11-26 19:16:22.000000000","message":"can you make this fact explicit in this spec please?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"db7ec3a8bc72bd6026fe53a14412f40b588e040e","unresolved":false,"context_lines":[{"line_number":221,"context_line":"     Default: org.apache.cassandra.dht.Murmur3Partitioner"},{"line_number":222,"context_line":"     Type: String"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  endpoint_snitch_strategy - determines which data centers and racks are written to and read from."},{"line_number":225,"context_line":"     Default: SimpleSnitch"},{"line_number":226,"context_line":"     Type: String"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_39776a0a","line":224,"in_reply_to":"5a890539_96a2ed49","updated":"2014-11-26 19:55:27.000000000","message":"Done, see letest patchset.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Notes::"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":" - Minimum flavor for cluster node should contain at least 4Gb RAM"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":" - Creates a cluster, with a 3 nodes, each cluster member with the same flavor (memory + vcpu) and volume-size."},{"line_number":353,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_93014007","line":350,"updated":"2014-11-25 22:50:23.000000000","message":"the associate-flavors-with-datastores blueprint should be tasked with solving this problem.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":443,"context_line":"::"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    {"},{"line_number":446,"context_line":"      \"instance\": {"},{"line_number":447,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":448,"context_line":"        \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":449,"context_line":"        \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_531b5872","line":446,"updated":"2014-11-25 22:50:23.000000000","message":"for mongodb, the ip-address was purposefully excluded (because in a sharded setup, the members should never be addressed directly).\n\nshould this be different for cassandra?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":443,"context_line":"::"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    {"},{"line_number":446,"context_line":"      \"instance\": {"},{"line_number":447,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":448,"context_line":"        \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":449,"context_line":"        \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_6a9a0915","line":446,"in_reply_to":"5a890539_531b5872","updated":"2014-11-26 08:55:52.000000000","message":"It is completely different for Cassandra, each cluster node can handle any CRUD operations.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"3fad43cb37ef4734c4b47831f5dd9ae2b673ae00","unresolved":false,"context_lines":[{"line_number":443,"context_line":"::"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    {"},{"line_number":446,"context_line":"      \"instance\": {"},{"line_number":447,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":448,"context_line":"        \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":449,"context_line":"        \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_d6f2b59a","line":446,"in_reply_to":"5a890539_6a9a0915","updated":"2014-11-26 19:16:22.000000000","message":"right, which is why i\u0027m asking you to consider whether the ip-address should be returned in this response, and why/why-not. because right now, it is not being returned.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"db7ec3a8bc72bd6026fe53a14412f40b588e040e","unresolved":false,"context_lines":[{"line_number":443,"context_line":"::"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    {"},{"line_number":446,"context_line":"      \"instance\": {"},{"line_number":447,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":448,"context_line":"        \"id\": \"416b0b16-ba55-4302-bbd3-ff566032e1c1\","},{"line_number":449,"context_line":"        \"cluster_id\": \"dfbbd9ca-b5e1-4028-adb7-f78643e17998\","}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_99869eda","line":446,"in_reply_to":"5a890539_d6f2b59a","updated":"2014-11-26 19:55:27.000000000","message":"doh, i see what you saying, i forgot to add ip into response, will fix it.","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"9a42cf3df50a5679648f1110ca0a8b08e73d9c01","unresolved":false,"context_lines":[{"line_number":800,"context_line":"------------"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"From API service to Taskmanager service"},{"line_number":803,"context_line":" - create_cluster"},{"line_number":804,"context_line":" - add_node_to_cluster"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"Guest Agent"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_33cb2c73","line":803,"updated":"2014-11-25 22:50:23.000000000","message":"can you elaborate on the logic that\u0027s going to be in create_cluster and the interactions with the rpc api for the guest you mention below?","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c47169e1a1a96d799227edc6cb5cc3ef08b4bcb7","unresolved":false,"context_lines":[{"line_number":800,"context_line":"------------"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"From API service to Taskmanager service"},{"line_number":803,"context_line":" - create_cluster"},{"line_number":804,"context_line":" - add_node_to_cluster"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"Guest Agent"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a890539_2a7ac1b9","line":803,"in_reply_to":"5a890539_33cb2c73","updated":"2014-11-26 08:55:52.000000000","message":"Sure","commit_id":"1f4086d1948777e2181dd2c9f73d063f5461eae3"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"c69ade6d11c1fc90916f5801acab32eb7586c7ce","unresolved":false,"context_lines":[{"line_number":68,"context_line":"We need to add new cluster tasks::"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Code - 0x05"},{"line_number":71,"context_line":"    Name - ADDING_DATANODE"},{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_cfc85478","line":71,"updated":"2014-11-26 21:17:21.000000000","message":"given my suggestions below, can we change this to \"ADDING_DATA_NODE\"?","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"bb8ab0c12040ddb04a33183f53e73132f9dfa9a2","unresolved":false,"context_lines":[{"line_number":68,"context_line":"We need to add new cluster tasks::"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Code - 0x05"},{"line_number":71,"context_line":"    Name - ADDING_DATANODE"},{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2a2f068a","line":71,"in_reply_to":"5a890539_cfc85478","updated":"2014-11-26 22:38:28.000000000","message":"Done","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ac4997ea76f6241e5be9ee01116401a279bb3d8d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"We need to add new cluster tasks::"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    Code - 0x05"},{"line_number":71,"context_line":"    Name - ADDING_DATANODE"},{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_0fe09c95","line":71,"in_reply_to":"5a890539_cfc85478","updated":"2014-11-26 21:35:27.000000000","message":"Sure","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"c69ade6d11c1fc90916f5801acab32eb7586c7ce","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_4fa464b9","line":75,"updated":"2014-11-26 21:17:21.000000000","message":"given my suggestions below, can we change this to \"ADDING_SEED_NODE\"?","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"bb8ab0c12040ddb04a33183f53e73132f9dfa9a2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_4a4b725f","line":75,"in_reply_to":"5a890539_4fa464b9","updated":"2014-11-26 22:38:28.000000000","message":"Done","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ac4997ea76f6241e5be9ee01116401a279bb3d8d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    Description - Adding datanode to Cassandra cluster"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2fec7892","line":75,"in_reply_to":"5a890539_4fa464b9","updated":"2014-11-26 21:35:27.000000000","message":"sure","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"c69ade6d11c1fc90916f5801acab32eb7586c7ce","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Instance quota usage"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_6fa92090","line":76,"updated":"2014-11-26 21:17:21.000000000","message":"typo here, you meant \"Adding seed node to\"","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"bb8ab0c12040ddb04a33183f53e73132f9dfa9a2","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Instance quota usage"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_ea3b3ec6","line":76,"in_reply_to":"5a890539_6fa92090","updated":"2014-11-26 22:38:28.000000000","message":"Done","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ac4997ea76f6241e5be9ee01116401a279bb3d8d","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    Code - 0x06"},{"line_number":75,"context_line":"    Name - ADDING_SEED"},{"line_number":76,"context_line":"    Description - Adding seed datanode to Cassandra cluster"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Instance quota usage"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_8febac77","line":76,"in_reply_to":"5a890539_6fa92090","updated":"2014-11-26 21:35:27.000000000","message":"doh \u003d(\n\nwill fix it","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"c69ade6d11c1fc90916f5801acab32eb7586c7ce","unresolved":false,"context_lines":[{"line_number":80,"context_line":"--------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Cassandra cluster constists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":83,"context_line":"Minimum cluster size - 1 node (see Configuration section)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Cassandra replication"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2f8d582b","line":83,"updated":"2014-11-26 21:17:21.000000000","message":"what\u0027s the difference between a standalone/single-instance cassandra and a cassandra cluster with a size of 1? this will confuse trove users.\n\ni think we should set the minimum to 3. it\u0027s the smallest sized cluster that makes any sense to roll to production.","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"bb8ab0c12040ddb04a33183f53e73132f9dfa9a2","unresolved":false,"context_lines":[{"line_number":80,"context_line":"--------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Cassandra cluster constists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":83,"context_line":"Minimum cluster size - 1 node (see Configuration section)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Cassandra replication"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2a462650","line":83,"in_reply_to":"5a890539_2f8d582b","updated":"2014-11-26 22:38:28.000000000","message":"Done","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ac4997ea76f6241e5be9ee01116401a279bb3d8d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"--------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Cassandra cluster constists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":83,"context_line":"Minimum cluster size - 1 node (see Configuration section)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Cassandra replication"}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2fbab871","line":83,"in_reply_to":"5a890539_2f8d582b","updated":"2014-11-26 21:35:27.000000000","message":"So, ok. I can see next use case, if deployer is sure that least minimum cluster size should be 1, he can change it in conf.\nI\u0027m fine with that.","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"dd947a84bad330849e522c284045cd1a75636a61","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        ]"},{"line_number":322,"context_line":"      }"},{"line_number":323,"context_line":"    }"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Response::"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_4c3472fb","line":324,"updated":"2014-11-26 21:13:52.000000000","message":"so i see a problem here:\n\nif i send a cluster-create request with n nodes, i should be able to specify which of those n are seeds\n(with validation protecting me from doing something stupid, like setting them all to seeds)\n\n*or* trove needs to take the stance of dictating what\u0027s safe, and have an algorithm for determining the # of seeds.\n\nimho, the former is a much better option, especially once region-awareness becomes a reality.\n\nwhich means you\u0027ll need to amend your schema to something like:\n\n    \"instances\": [\n      {\n        \"type\": \"seed\",\n        \"flavorRef\": \"2\",\n        \"volume\": {\n          \"size\": 100\n        }\n      },\n      ...\n    ]\n\ntaking this a step further: instead of defaulting the type to \"data\", let\u0027s make the user explicitly set it.\n\nnet-net: make \"type\" a required field for cassandra, in which the value has to be \u0027seed\u0027 or \u0027data\u0027.\n\nassuming we have consensus on this approach, please amend your other req/resp examples to always return the \u0027type\u0027 field.\nalso: see my suggestion on combining add_datanode and add_seednode. you\u0027ll see that this blends well with it.","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"bb8ab0c12040ddb04a33183f53e73132f9dfa9a2","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        ]"},{"line_number":322,"context_line":"      }"},{"line_number":323,"context_line":"    }"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Response::"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_ca65a2e3","line":324,"in_reply_to":"5a890539_4c3472fb","updated":"2014-11-26 22:38:28.000000000","message":"Done","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"8c0e14df20899a3871b9f00f02c04cd993f02d77","unresolved":false,"context_lines":[{"line_number":321,"context_line":"        ]"},{"line_number":322,"context_line":"      }"},{"line_number":323,"context_line":"    }"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Response::"},{"line_number":327,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_efd8b020","line":324,"in_reply_to":"5a890539_4c3472fb","updated":"2014-11-26 21:20:59.000000000","message":"edit: ignore the line \"also: see my suggestion on combining add_datanode and add_seednode. you\u0027ll see that this blends well with it.\", it\u0027s outdated.","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"dd947a84bad330849e522c284045cd1a75636a61","unresolved":false,"context_lines":[{"line_number":711,"context_line":""},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"HTTP Method. Route: POST /v1.0/\u003ctenant_id\u003e/clusters/\u003ccluster_id\u003e"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"Request::"},{"line_number":717,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_2fe71848","line":714,"updated":"2014-11-26 21:13:52.000000000","message":"for what it\u0027s worth, i considered suggesting:\n\n    {\n      \"add_node\": {\n         \"type\": \"?\"\n       }\n    }\n\n    where ? must be either \"seed\" or \"data\".\n\nbut here\u0027s why i don\u0027t believe that\u0027s a good idea:\n\ni see the value in having:\n\n    { \"replace_seed_node\": {}}\n\nand:\n\n    { \"replace_data_node\": {}}\n\nbe distinct actions since they have much different consequences. therefore, for consistency, i think having add_seed_node and add_data_node makes sense.\n\nnet-net: change add_datanode to add_data_node and add_seed to add_seed_node.","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"ac4997ea76f6241e5be9ee01116401a279bb3d8d","unresolved":false,"context_lines":[{"line_number":711,"context_line":""},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"HTTP Method. Route: POST /v1.0/\u003ctenant_id\u003e/clusters/\u003ccluster_id\u003e"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":""},{"line_number":716,"context_line":"Request::"},{"line_number":717,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"5a890539_af5b0854","line":714,"in_reply_to":"5a890539_2fe71848","updated":"2014-11-26 21:35:27.000000000","message":"sure, will do","commit_id":"e696cb57552d75b903a1da47c8473814d4a88717"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"https://blueprints.launchpad.net/trove/+spec/cassandra-cluster"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Since Trove aims to become production-grade DBaaS its abilities should meet market needs."},{"line_number":19,"context_line":"Among all overcloud applications (such as Click-a-Tell, Reddit), that are using OpenStack is service layer, there are lots of applications"},{"line_number":20,"context_line":"that were designed to work with NoSQL, in this case - with Cassandra, databases."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_19cad76d","line":18,"updated":"2014-12-04 10:17:34.000000000","message":"My recommendation would be to lose lines 18 through 39 and replace it merely with a sentence that reads \"One of the important benefits of Cassandra is its simple clustering ability and this is something that customers need in order to use the database in production\".\n\nThis is well known and the references 1 through 7 are redundant for the most part.","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Among all overcloud applications (such as Click-a-Tell, Reddit), that are using OpenStack is service layer, there are lots of applications"},{"line_number":20,"context_line":"that were designed to work with NoSQL, in this case - with Cassandra, databases."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"The choise of Cassandra as next supported clusterable datastore was made from next considerations::"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":" - flat deployement schema"},{"line_number":25,"context_line":" - simple scale up/down procedure"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_b9daa348","line":22,"updated":"2014-12-04 10:17:34.000000000","message":"choice","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Instance quota usage"},{"line_number":80,"context_line":"--------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Cassandra cluster constists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":83,"context_line":"Minimum cluster size - 3 node (see Configuration section)."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_596e1f65","line":82,"updated":"2014-12-04 10:17:34.000000000","message":"consists","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Create Cluster"},{"line_number":312,"context_line":"--------------"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"HTTP Method. Route: POST /v1.0/\u003ctenant_id\u003e/clusters"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Request::"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_19f49785","line":314,"updated":"2014-12-04 10:17:34.000000000","message":"This API is problematic because it is hard to extend. Other databases will also support clusters and it isn\u0027t clear how one can extend on this model. Maybe some description of how it is anticipated that this API is extensible would help here.","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":433,"context_line":" - Initial cluster should have at least 1 seed node per 3 data nodes (see Configuration section)."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"------------"},{"line_number":436,"context_line":"Show Cluster"},{"line_number":437,"context_line":"------------"},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"Request"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_5941bfa4","line":436,"updated":"2014-12-04 10:17:34.000000000","message":"What about GET /v1.0/\u003ctenant_id\u003e/clusters\n\nWould it list all clusters?","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":701,"context_line":"   GET /instances prior to clustering returned only standalone instances, and to honor that contract, we will filter out instances that belong to a cluster."},{"line_number":702,"context_line":""},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"Request"},{"line_number":705,"context_line":"::"},{"line_number":706,"context_line":"HTTP Method. Route - GET /v1.0/\u003ctenant_id\u003e/instances?include_clustered\u003dfalse"},{"line_number":707,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_797afbf1","line":704,"updated":"2014-12-04 10:17:34.000000000","message":"Some issue(s) with formatting?","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":773,"context_line":"HTTP Method. Route: POST /v1.0/\u003ctenant_id\u003e/clusters/\u003ccluster_id\u003e"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"Request::"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"    {"},{"line_number":779,"context_line":"      \"add_data_node\": {}"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_596fff27","line":776,"updated":"2014-12-04 10:17:34.000000000","message":"This makes the API very hard to extend, I think. Maybe you believe otherwise; an explanation would help.","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"506456249a14205fa3e201d48d68b460f5598b38","unresolved":false,"context_lines":[{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"Doc impact will appear to take its place. See Configuration section."},{"line_number":1038,"context_line":""},{"line_number":1039,"context_line":"References"},{"line_number":1040,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1041,"context_line":""},{"line_number":1042,"context_line":"[1] Cassandra - http://cassandra.apache.org/"}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a890539_1950175d","line":1039,"updated":"2014-12-04 10:17:34.000000000","message":"Formatting issue. See rendered text, this is rendered without linefeeds and is hard to read.","commit_id":"55eee8abc7df579334041aa228432bf0cc58ee1c"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Cassandra cluster consists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":65,"context_line":"Minimum cluster size - 3 node (see Configuration section)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Cassandra replication"},{"line_number":69,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_ce89af76","line":66,"updated":"2015-02-04 01:54:12.000000000","message":"Is there a reason 3 nodes is chosen as default minimum?\n\nI agree- it\u0027s a \"good number\", because you can have both consistency and fault tolerance.  \nI\u0027m not sure where it manifests itself, but could be worth calling out the suggestion for replication_factor\u003d2 and read/write consistency settings that take greatest advantage of this setup.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Cassandra cluster consists of data nodes only. There\u0027s no need in additional servers (see MongoDB sharding deployment)."},{"line_number":65,"context_line":"Minimum cluster size - 3 node (see Configuration section)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Cassandra replication"},{"line_number":69,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_847945ca","line":66,"in_reply_to":"da86d52c_ce89af76","updated":"2015-02-04 14:23:28.000000000","message":"Trove deployer would be able to setup initial cluser size within Trove\u0027s configuration.\n\nBut in any case, Cassandra single node is already a cluster (using vnodes).Also taking into account seed vs data nodes it is required to have \u003e1 seed and \u003e1 data node in the deployment, since seed node is responsible for cluster self discovery and data nodes are just storing the data, so, with 2 nodes, read/write consistency is a good thing, but coming from Cassandra\u0027s eventual consistency, there\u0027s no limitations or restrictions or strong recommendations to start cluster from 2 nodes.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        - Setup vnodes"},{"line_number":115,"context_line":"        - Setup partitioner"},{"line_number":116,"context_line":"        - Setup endpoint provider"},{"line_number":117,"context_line":"        - Apply new configuration file for each of N instances"},{"line_number":118,"context_line":"        - Restart instance datastore on each of N instances"},{"line_number":119,"context_line":"        - For each instance of cluster::"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_8eec17f5","line":117,"updated":"2015-02-04 01:54:12.000000000","message":"historically, I\u0027ve seen Cassandra fail to start if it had run beforehand with a different configuration.   only a note that it *could* be necessary to destroy some data in such cases.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        - Setup vnodes"},{"line_number":115,"context_line":"        - Setup partitioner"},{"line_number":116,"context_line":"        - Setup endpoint provider"},{"line_number":117,"context_line":"        - Apply new configuration file for each of N instances"},{"line_number":118,"context_line":"        - Restart instance datastore on each of N instances"},{"line_number":119,"context_line":"        - For each instance of cluster::"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_c42dfda9","line":117,"in_reply_to":"da86d52c_8eec17f5","updated":"2015-02-04 14:23:28.000000000","message":"Yes, i know that. Will address it.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    - Restart datastore on new instance"},{"line_number":158,"context_line":"    - Setup tokens on new instance"},{"line_number":159,"context_line":"    - Restart datastore on new instance"},{"line_number":160,"context_line":"    - Verify cluster is runnung"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    Step-by-Step guide for adding new seed node into existing cluster"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_6ec6036a","line":160,"updated":"2015-02-04 01:54:12.000000000","message":"by polling nodepool output?","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    - Restart datastore on new instance"},{"line_number":158,"context_line":"    - Setup tokens on new instance"},{"line_number":159,"context_line":"    - Restart datastore on new instance"},{"line_number":160,"context_line":"    - Verify cluster is runnung"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    Step-by-Step guide for adding new seed node into existing cluster"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_5f0d5836","line":160,"in_reply_to":"da86d52c_6ec6036a","updated":"2015-02-04 14:23:28.000000000","message":"there\u0027s no need to poll, you\u0027d need to ask only once, if nodes are seeing each other then it means that cluster is running.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":179,"context_line":"Partitioner setting"},{"line_number":180,"context_line":"-------------------"},{"line_number":181,"context_line":"You can use either the Murmur3Partitioner or RandomPartitioner with virtual nodes. More info at [5]."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Snitch setting"},{"line_number":184,"context_line":"--------------"},{"line_number":185,"context_line":"A snitch determines which data centers and racks nodes belong to."}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_ce0b6f8c","line":182,"updated":"2015-02-04 01:54:12.000000000","message":"but, use Murmur3","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":179,"context_line":"Partitioner setting"},{"line_number":180,"context_line":"-------------------"},{"line_number":181,"context_line":"You can use either the Murmur3Partitioner or RandomPartitioner with virtual nodes. More info at [5]."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"Snitch setting"},{"line_number":184,"context_line":"--------------"},{"line_number":185,"context_line":"A snitch determines which data centers and racks nodes belong to."}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_bf32d4ef","line":182,"in_reply_to":"da86d52c_ce0b6f8c","updated":"2015-02-04 14:23:28.000000000","message":"Murmur3 enabled by default.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"   - GossipingPropertyFileSnitch"},{"line_number":192,"context_line":"     Automatically updates all nodes using gossip when adding new nodes."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"For production usage DataStax suggests to use \"GossipingPropertyFileSnitch\" strategy. From DataStax docs::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    The \"GossipingPropertyFileSnitch\" is *not* enabled by default *but* is recommended for use in most deployments."}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_62129758","line":193,"updated":"2015-02-04 01:54:12.000000000","message":"is GossipingPropertyFileSnitch connected to openstack availability zone or aggregates?   Documentation shall call out how to leverage the virtual to physical mappings in this case?","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"   - GossipingPropertyFileSnitch"},{"line_number":192,"context_line":"     Automatically updates all nodes using gossip when adding new nodes."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"For production usage DataStax suggests to use \"GossipingPropertyFileSnitch\" strategy. From DataStax docs::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    The \"GossipingPropertyFileSnitch\" is *not* enabled by default *but* is recommended for use in most deployments."}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_7f6a1cb4","line":193,"in_reply_to":"da86d52c_62129758","updated":"2015-02-04 14:23:28.000000000","message":"Initial cluster implementation doesn\u0027t allow to use AZ\u0027s. So there\u0027s no way to map DCs/Racks to specific AZ in OpenStack at all.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        },"},{"line_number":361,"context_line":"        \"instances\": ["},{"line_number":362,"context_line":"          {"},{"line_number":363,"context_line":"            \"flavorRef\": \"2\","},{"line_number":364,"context_line":"            \"volume\": {"},{"line_number":365,"context_line":"              \"size\": 100"},{"line_number":366,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_6e49a35f","line":363,"updated":"2015-02-04 01:54:12.000000000","message":"Does the design support running without cinder?  Volumes can be omitted and local storage shall be used?\nI find this particularly compelling with Cassandra","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        },"},{"line_number":361,"context_line":"        \"instances\": ["},{"line_number":362,"context_line":"          {"},{"line_number":363,"context_line":"            \"flavorRef\": \"2\","},{"line_number":364,"context_line":"            \"volume\": {"},{"line_number":365,"context_line":"              \"size\": 100"},{"line_number":366,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_ff9d2cbd","line":363,"in_reply_to":"da86d52c_6e49a35f","updated":"2015-02-04 14:23:28.000000000","message":"Yes, you might take a look at volume support for datastores that was implemented long time ago.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            \"flavorRef\": \"2\","},{"line_number":364,"context_line":"            \"volume\": {"},{"line_number":365,"context_line":"              \"size\": 100"},{"line_number":366,"context_line":"            },"},{"line_number":367,"context_line":"            \"type\": \"seed_node\","},{"line_number":368,"context_line":"          },"},{"line_number":369,"context_line":"          {"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_938e04cf","line":366,"updated":"2015-02-04 01:54:12.000000000","message":"An important consideration when running cassandra [on real hardware] is separation of the commitlog on its own disk spindle. [and/or using SSD for commitlog]\nDoes the v1 design make any particular provisions for commitlog being managed distinctly from OS and data volumes?  Should we at least DIB a partition for it?\n\nCalculating size requirements for cassandra is surely beyond scope - but it could be worth mentioning that you almost surely need double the space you think you need.  Or, that when disk space reaches 50%, you should consider that full.   Because of Cassandra data compaction process.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":363,"context_line":"            \"flavorRef\": \"2\","},{"line_number":364,"context_line":"            \"volume\": {"},{"line_number":365,"context_line":"              \"size\": 100"},{"line_number":366,"context_line":"            },"},{"line_number":367,"context_line":"            \"type\": \"seed_node\","},{"line_number":368,"context_line":"          },"},{"line_number":369,"context_line":"          {"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_9faef0e4","line":366,"in_reply_to":"da86d52c_938e04cf","updated":"2015-02-04 14:23:28.000000000","message":"It is up to Cassandra\u0027s user, since they are requesting specific storage size.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":12208,"name":"Brian Hunter","email":"bhunter@tesora.com","username":"bhunter"},"change_message_id":"b86e356370d8b456fc2f1afda2998fe5a1b69ea5","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"HTTP codes::"},{"line_number":1049,"context_line":""},{"line_number":1050,"context_line":"    202 - Accepted."},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"-------------------------"},{"line_number":1053,"context_line":"Configuration for Cluster"},{"line_number":1054,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_6267f7e9","line":1051,"updated":"2015-02-04 01:54:12.000000000","message":"when one has full access to their self-managed cassandra cluster, they might like to use nodepool to trigger operations like compaction and validation.  (or, I felt I had to back in 1.2 days)\n\nThe API strikes me as limitted in this way.   \ncompaction could be a good use for the much anticipated \u0027scheduled task\u0027 feature.\nI suppose the other comments could be in the \"we don\u0027t want to get into the business of monitoring\" department.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"c20290053eb362ea3dbbe93c67dba336219146c9","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"HTTP codes::"},{"line_number":1049,"context_line":""},{"line_number":1050,"context_line":"    202 - Accepted."},{"line_number":1051,"context_line":""},{"line_number":1052,"context_line":"-------------------------"},{"line_number":1053,"context_line":"Configuration for Cluster"},{"line_number":1054,"context_line":"-------------------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"da86d52c_3f40a406","line":1051,"in_reply_to":"da86d52c_6267f7e9","updated":"2015-02-04 14:23:28.000000000","message":"Instance networking configuration allows you to use nodetool wherever you need it.\n\nAnd yes, Trove doesn\u0027t do monitoring, so it is up to cloud admninistrators to use other tools to do monitoring.","commit_id":"53c286dccc1f3eb3966d04e7704e9ebab19de0b1"}]}
