)]}'
{"specs/backlog/keystone-slaveification.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5ec194638f83902d5ba7c7040685ed05c5afc893","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* assignment/user/project/group listings"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed Change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As the slave_connection framework is already integrated into oslo_db,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_c53b419b","line":34,"updated":"2015-07-01 01:52:53.000000000","message":"will there be new config options?","commit_id":"4e56255c75ced9e100080d6c0bd387f14a5b11e0"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"dfa09aba77e361c2844aacb9067d08093e1d1b01","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* assignment/user/project/group listings"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed Change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As the slave_connection framework is already integrated into oslo_db,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba3cc151_6fa32f50","line":34,"in_reply_to":"ba3cc151_c53b419b","updated":"2015-07-01 05:53:14.000000000","message":"No, required option and logic behind already exists [DATABASE]/slave_connection \n\nOption in config https://github.com/openstack/keystone/blob/master/etc/keystone.conf.sample#L493\n\nLogic https://github.com/openstack/oslo.db/blob/42dc93608f527406534ea8b10a76556eb92fd9dd/oslo_db/sqlalchemy/session.py#L850","commit_id":"4e56255c75ced9e100080d6c0bd387f14a5b11e0"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"ebcb948145bd1ee3a7f43e5285db5d15f792459e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"round-trip. Using slave DB connection for SELECT could mitigate this problem."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Also, as the fernet token writes nothing to DB, there could be a huge"},{"line_number":28,"context_line":"performance boost for frequent Keystone openrations:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* token issuing/validation"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_63902344","line":28,"updated":"2015-07-01 08:53:06.000000000","message":"nit: operations.","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"67e903992c719d259aa33895eb0e736b8ed812be","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Also, as the fernet token writes nothing to DB, there could be a huge"},{"line_number":28,"context_line":"performance boost for frequent Keystone openrations:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* token issuing/validation"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* assignment/user/project/group listings"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_57aeeb98","line":30,"updated":"2015-07-01 13:21:47.000000000","message":"how will this switch make issuing/validation faster?","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"6be3296af4044c984edd49a799942c0701066340","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Also, as the fernet token writes nothing to DB, there could be a huge"},{"line_number":28,"context_line":"performance boost for frequent Keystone openrations:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* token issuing/validation"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* assignment/user/project/group listings"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_ad2daaa9","line":30,"in_reply_to":"ba3cc151_57aeeb98","updated":"2015-07-01 14:04:30.000000000","message":"Image you have master-master configuration with one preferred server, as is designed with Galera and HAProxy http://docs.openstack.org/high-availability-guide/content/ha-aa-haproxy.html \n\nIf you have noticeable RTT between your Galera + Keystone nodes, you\u0027ve got noticeable delay on bunch of DB requests doing by various backends. This request should be routed on local replica via slave_connection.","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"79edb6544946d9481cd74d58b07df78f8d487f08","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Proposed Change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As the ``[DATABASE]/slave_connection`` config option and logic behind is"},{"line_number":38,"context_line":"already done in oslo_db, there is only two changes needed:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"1. Pass ``use_slave`` from keystone/common/sql/core.py to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_da02370b","line":37,"updated":"2015-07-01 06:27:18.000000000","message":"thanks for mentioning this.","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"67e903992c719d259aa33895eb0e736b8ed812be","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Performance Impact"},{"line_number":87,"context_line":"------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There should be a performance boost."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Other Deployer Impact"},{"line_number":92,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_812aff7c","line":89,"updated":"2015-07-01 13:21:47.000000000","message":"I don\u0027t like this \"should\". Are there any test results?","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"6be3296af4044c984edd49a799942c0701066340","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Performance Impact"},{"line_number":87,"context_line":"------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"There should be a performance boost."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Other Deployer Impact"},{"line_number":92,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_505a712b","line":89,"in_reply_to":"ba3cc151_812aff7c","updated":"2015-07-01 14:04:30.000000000","message":"Yep. 200ms vs 50ms on fernet token issuing with 20ms RTT emulated by tc.\n\nIt\u0027s OBVIOUSLY should be faster in case if you use local replica istead of remote one.","commit_id":"8ffaf25e88460bee57ce617b5394091a73c45db7"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"99494346490cdb5bb959045efd7e0ecb66fc0183","unresolved":false,"context_lines":[{"line_number":23,"context_line":"performance problems on various complex operations such a token issuing due to"},{"line_number":24,"context_line":"the large number of DB queries (including keep-alive SELECT 1) and"},{"line_number":25,"context_line":"round-trip time. Using slave DB connection for SELECT could mitigate this"},{"line_number":26,"context_line":"problem."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Avoiding slow (in terms of RTT) link and use local replica could lead to a"},{"line_number":29,"context_line":"huge performance boost for read-only operations:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_406a8a82","line":26,"updated":"2015-07-01 22:13:28.000000000","message":"So with this setup, read *always* done on local replica/slave while write will occur at the master?","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"9418340a616c440dba1e69b5da7eb6a7ccc13054","unresolved":false,"context_lines":[{"line_number":23,"context_line":"performance problems on various complex operations such a token issuing due to"},{"line_number":24,"context_line":"the large number of DB queries (including keep-alive SELECT 1) and"},{"line_number":25,"context_line":"round-trip time. Using slave DB connection for SELECT could mitigate this"},{"line_number":26,"context_line":"problem."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Avoiding slow (in terms of RTT) link and use local replica could lead to a"},{"line_number":29,"context_line":"huge performance boost for read-only operations:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_7b6adfb4","line":26,"in_reply_to":"ba3cc151_406a8a82","updated":"2015-07-01 22:35:07.000000000","message":"With this setup transactions (sessions in terms of codebase) for READ operations (list, check, get) that contains only \"SELECT...\" done on slave_connection.\n\nTransactions for CHANGE operations done on master, even it could contain \"SELECT...\"","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"99494346490cdb5bb959045efd7e0ecb66fc0183","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"   get_engine, get_session and transaction is need to be extended"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"2. Carefully add ``use_slave`` for read-only (e.g to use local replica)"},{"line_number":67,"context_line":"   operations to various sql backend implementations:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"   * keystone/assignment/role_backends/sql.py"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_750e6e3c","line":66,"updated":"2015-07-01 22:13:28.000000000","message":"how carefully? :)","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"9418340a616c440dba1e69b5da7eb6a7ccc13054","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"   get_engine, get_session and transaction is need to be extended"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"2. Carefully add ``use_slave`` for read-only (e.g to use local replica)"},{"line_number":67,"context_line":"   operations to various sql backend implementations:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"   * keystone/assignment/role_backends/sql.py"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_7bb17f46","line":66,"in_reply_to":"ba3cc151_750e6e3c","updated":"2015-07-01 22:35:07.000000000","message":"I\u0027ve done it https://review.openstack.org/197455 check it out :)","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"99494346490cdb5bb959045efd7e0ecb66fc0183","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Performance Impact"},{"line_number":108,"context_line":"------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"There should be a performance boost."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Other Deployer Impact"},{"line_number":113,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_202d0695","line":110,"updated":"2015-07-01 22:13:28.000000000","message":"I guess there\u0027s no way to quantify it.","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"},{"author":{"_account_id":11708,"name":"Atsuko Ito","email":"me@yottatsa.name","username":"yottatsa"},"change_message_id":"9418340a616c440dba1e69b5da7eb6a7ccc13054","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Performance Impact"},{"line_number":108,"context_line":"------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"There should be a performance boost."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Other Deployer Impact"},{"line_number":113,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba3cc151_9b956388","line":110,"in_reply_to":"ba3cc151_202d0695","updated":"2015-07-01 22:35:07.000000000","message":"RTT * Request count * k :)","commit_id":"d49e226c7136c893ce64593051abfa2247e46d33"}]}
