)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"8bb2b6bc0a58f8f95aeb8d86df1f449a151530d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6b2f4aab_d3e4479c","updated":"2025-03-24 22:55:44.000000000","message":"uncertain here because galera does have replication lag, it\u0027s not safe to just switch between two different nodes within a single operation where there are cross-data-dependencies between those operations.\n\nOTOH if there is no cross-data-dependency between a particular write and read operation, neutron should use ASYNC_READER.   it would be safer for Neutron to pursue setting up ASYNC_READER where it can and then running tempest tests under multi-master galera (in any case even if we do it this way, there should be tempest run with MM galera, probably with wsrep_sync_wait set appropriately, to confirm this is feasible).\n\nI think what I\u0027m saying is I dont want to just merge this and assume it\u0027s a worthwhile addition without testing under performance loads first to see if this is actually practical and if so how should it be documented.","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2cc578ea55517e01d0799c197fd7a1dd3b58933","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c7a5d301_973a817d","updated":"2025-08-01 18:20:39.000000000","message":"So I was looking at the neutron bug for this today but could not tell if this (or the neutron change at https://review.opendev.org/c/openstack/neutron-lib/+/945275) were safe to adopt, or if it could expose unknown race conditions in the code? If it\u0027s safe I\u0027d love to move forward with it so neutron can consume it.\n\nThanks for any comments. -Brian","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"72af8a2cb1bc70c404f892543adcf792e69cd9ca","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a247a392_c6df389e","in_reply_to":"88bad86d_054d46f7","updated":"2025-08-14 16:05:00.000000000","message":"That\u0027s great to hear Arnaud. I would be interested in any data when you have it, can share here or in the bug. Thanks!","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"4fa330cf1a5392b076f4ad6bdc2531eabf205322","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6e8c8904_04337bab","in_reply_to":"a247a392_c6df389e","updated":"2025-09-04 10:29:54.000000000","message":"Done","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3600c7cf4101502c7caa05c85aacf2f61a4bea4e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"88bad86d_054d46f7","in_reply_to":"c7a5d301_973a817d","updated":"2025-08-12 07:39:45.000000000","message":"I have been playing with it on few (small - 100 hypervisors) production regions within my company and so far it\u0027s good.\nWe haven\u0027t notified any deadlock or anything wrong so far.\n\nI plan to apply it on bigger regions (like 1k-2k hypervisors) soon and I will share the results if you want","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"c7325d4f13bc2fd4346cc44084ff7167c332cc05","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"08ab5cf2_bda41c3a","updated":"2025-09-04 12:22:20.000000000","message":"apologies that I had a response in progress here from months ago that didn\u0027t get submitted.   It was not accurate anyway, hopefully this one is.","commit_id":"e20faf344f24979d7571b8328d64b9b851cdb761"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3790b255d119796a647e25686efe0762221c2d29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8046a223_9996caaa","updated":"2025-09-12 13:08:16.000000000","message":"recheck","commit_id":"e20faf344f24979d7571b8328d64b9b851cdb761"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"b97da3cc795110ac27db7183a54f5197699cbabc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"24c172c0_886c0b00","updated":"2025-09-11 12:30:36.000000000","message":"recheck oslodb-tox-py39-tips","commit_id":"e20faf344f24979d7571b8328d64b9b851cdb761"}],"oslo_db/options.py":[{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"8bb2b6bc0a58f8f95aeb8d86df1f449a151530d1","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"94c1bfef_63d7a855","line":68,"updated":"2025-03-24 22:55:44.000000000","message":"that\u0027s not true, Galera clusters have replication lag also.   you need to set wsrep_sync_wait appropriately if you are attempting to read data from a node that was first committed to a different node.    doing so means that the reader will wait until writesets are committed.   This incurs a performance degradation.\n\nOTOH if neutron is reading in two different contexts, one where it\u0027s reading data that may have just been committed in the past few seconds to a different node, vs. one where it\u0027s reading data that is long-term read-only stuff that it does not expect was just committed a few seconds ago, it really should be using ASYNC_READER.","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"e5ca5115cf7bea64159deffb62d93336f1e79281","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"030f997a_dcc8f919","line":68,"in_reply_to":"06f9909d_fe3b4296","updated":"2025-09-04 10:30:04.000000000","message":"Done","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"c7325d4f13bc2fd4346cc44084ff7167c332cc05","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"b754b0a0_b80497d2","line":68,"in_reply_to":"06f9909d_fe3b4296","updated":"2025-09-04 12:22:20.000000000","message":"hi.   Sorry for the late reply here, as I had a message in draft here that never got submitted.\n\nThe concern I had, which I didn\u0027t submit (probably because I went off to look at the code and got distracted), is that if all `@reader` calls are now turned into `@async_reader`, that would (maybe?) mean that if a `@writer` method called into a `@reader` method, the `@reader` would open up a new connection and then proceed outside the transaction, which would lead to widespread data issues and deadlocks.\n\nHowever, looking at the code now (and submitting my message this time), I think the design (which is mine, yes, but from years ago...) is that if you are already inside of a `@writer` context, further calls are going to reuse the session/connection that is already in progress, so it would remain on the writer/transaction and not actually do anything with reader, so that part would be fine.\n\nso my only remaining concern is we add an option that turns out to be not useful, or leads to breakage, and now it\u0027s cruft.   so I would (re-?)iterate it would be super nice if this mode could be tested in neutron up front before merging here, to prove that a. it doesnt lead to new problems and b. actually has a benefit.   if that\u0027s been done, I\u0027d love to see what the results were.\n\nOtherwise if we merge a feature here first, then go off to actually try it in practice, then we may find out later it\u0027s not viable.  but at least the keystone read-only case mentioned by Tobias, I guess that\u0027s a case for it.","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"94d77d6073924f85c77d3b6fe7eaf5dac3f27710","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"6ab3c44b_0ce17dba","line":68,"in_reply_to":"7d0dea2f_24934710","updated":"2025-09-04 17:51:57.000000000","message":"OK great, carry on","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"6b63f34a380d475f14c113452f4f46feaa211052","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"cba9f7bb_60f0e563","line":68,"in_reply_to":"94c1bfef_63d7a855","updated":"2025-03-25 15:01:37.000000000","message":"Based on the discussion I had with Mike back in August last year, I actually think this should be allowed to be a config option... **BUT** with a huge red danger warning message.\n\nIt\u0027s basically impossible for an operator/user (without extensive knowledge about the codebase of the project using oslo.db) to know that it\u0027s safe to enable this without getting into race condition between writer and reader contexts, if really should be the developers that say it\u0027s fine by using an async reader.\n\nBut there are exceptions, for example, we used Mike\u0027s example [1] when we did our database migration from Keystone, we configured the fallback cluster in slave_connection while we had to take the primary cluster down and force Keystone to use the slave_connection, BUT this was an migration were we didn\u0027t have to accept writes so we simply used a **read-only** user in the cluster to prevent writes all together, but for that migration itself it would\u0027ve been easier setting synchronous_reader\u003dFalse in config instead of patching the Keystone code.\n\n[1] https://review.opendev.org/c/openstack/keystone/+/926776","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"cb5d5e8e868d7d21f0e7d3f58d00d3fc6420b9a7","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7d0dea2f_24934710","line":68,"in_reply_to":"b754b0a0_b80497d2","updated":"2025-09-04 16:59:35.000000000","message":"I am really happy to see you message!\n\nAbout the usefulness of this patch, despite the fact that I am the author, I confirm that this is VERY useful.\nI applied this on something like 5 or 6 OpenStack Regions running neutron caracal (2024.1).\nOne of the region result is in the bug report [1].\nThe switch immediatly proved to be very effective for us on this 300 computes region (running OVS / L3-dvr).\n\nWe are also actively monitoring the deadlocks / SQL errors, but so far, it\u0027s all clear.\nIt\u0027s running in production from more than a month now.\n\n[1] https://bugs.launchpad.net/neutron/+bug/2103868/comments/5","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"bdfe7eec9628c43c6f93ae89277505cb5582b461","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can safely be set to False. On the opposite, when using \u0027"},{"line_number":69,"context_line":"            \u0027master/slave replication, this should be set to True. Note \u0027"},{"line_number":70,"context_line":"            \u0027that this parameter has no effect if you don\\\u0027t set any \u0027"},{"line_number":71,"context_line":"            \u0027slave_connection.\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"06f9909d_fe3b4296","line":68,"in_reply_to":"cba9f7bb_60f0e563","updated":"2025-03-28 14:15:07.000000000","message":"Ok, thank you for your replies.\n\nWhat about setting oslo.db wsrep_sync_wait accordingly? IIUC if we set this to 1, then we should be \"safe\"?\n\nhttps://review.opendev.org/c/openstack/oslo.db/+/865877","commit_id":"2118a33fa41960609b9318be610fb44a440a2484"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2cc578ea55517e01d0799c197fd7a1dd3b58933","unresolved":true,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can be set to False only if you set wsrep_sync_wait to 1 (this \u0027"},{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"75ef1429_b2d4560f","line":68,"updated":"2025-08-01 18:20:39.000000000","message":"The config option (below) is mysql_wsrep_sync_wait if that matters.","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"5b196c9ee3b7225845b9c71ac202d4750db6c1ac","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            \u0027lag is present; defaults to True. When False, a reader \u0027"},{"line_number":66,"context_line":"            \u0027context works the same as async_reader and will select the \u0027"},{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can be set to False only if you set wsrep_sync_wait to 1 (this \u0027"},{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"ed047c43_bf5f7afb","line":68,"in_reply_to":"75ef1429_b2d4560f","updated":"2025-08-12 07:31:06.000000000","message":"Done","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2cc578ea55517e01d0799c197fd7a1dd3b58933","unresolved":true,"context_lines":[{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can be set to False only if you set wsrep_sync_wait to 1 (this \u0027"},{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"6fa2fb98_b7894d0d","line":70,"range":{"start_line":70,"start_character":13,"end_line":70,"end_character":21},"updated":"2025-08-01 18:20:39.000000000","message":"nit: committed","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"5b196c9ee3b7225845b9c71ac202d4750db6c1ac","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            \u0027slave database if present. When using a galera cluster, this \u0027"},{"line_number":68,"context_line":"            \u0027can be set to False only if you set wsrep_sync_wait to 1 (this \u0027"},{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a9a59db_35d83a7e","line":70,"range":{"start_line":70,"start_character":13,"end_line":70,"end_character":21},"in_reply_to":"6fa2fb98_b7894d0d","updated":"2025-08-12 07:31:06.000000000","message":"Done","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2cc578ea55517e01d0799c197fd7a1dd3b58933","unresolved":true,"context_lines":[{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"},{"line_number":74,"context_line":"            \u0027any slave_connection.\u0027"},{"line_number":75,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"4789973f_9cbf1f9d","line":72,"updated":"2025-08-01 18:20:39.000000000","message":"Missing trailing space","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"5b196c9ee3b7225845b9c71ac202d4750db6c1ac","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            \u0027will guarantee that the reader will wait until writesets are \u0027"},{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"},{"line_number":74,"context_line":"            \u0027any slave_connection.\u0027"},{"line_number":75,"context_line":"        ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"44646173_ce6ec5bd","line":72,"in_reply_to":"4789973f_9cbf1f9d","updated":"2025-08-12 07:31:06.000000000","message":"Done","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d2cc578ea55517e01d0799c197fd7a1dd3b58933","unresolved":true,"context_lines":[{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"},{"line_number":74,"context_line":"            \u0027any slave_connection.\u0027"},{"line_number":75,"context_line":"        ),"},{"line_number":76,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"84d08388_8877fe72","line":73,"range":{"start_line":73,"start_character":64,"end_line":73,"end_character":70},"updated":"2025-08-01 18:20:39.000000000","message":"nit: do not (i.e. avoid the contraction)","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"5b196c9ee3b7225845b9c71ac202d4750db6c1ac","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            \u0027commited).\u0027"},{"line_number":71,"context_line":"            \u0027Note that this may incur a performance degradation within the \u0027"},{"line_number":72,"context_line":"            \u0027galera cluster.\u0027"},{"line_number":73,"context_line":"            \u0027Note also that this parameter has no effect if you don\\\u0027t set \u0027"},{"line_number":74,"context_line":"            \u0027any slave_connection.\u0027"},{"line_number":75,"context_line":"        ),"},{"line_number":76,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"5215ff50_6513c5ff","line":73,"range":{"start_line":73,"start_character":64,"end_line":73,"end_character":70},"in_reply_to":"84d08388_8877fe72","updated":"2025-08-12 07:31:06.000000000","message":"Done","commit_id":"5145ce1415230fb8ceacf0c70a312583b65246fa"}],"releasenotes/notes/add-synchronous_reader-3c3b8d4e0e992cd3.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"72af8a2cb1bc70c404f892543adcf792e69cd9ca","unresolved":true,"context_lines":[{"line_number":12,"context_line":"    works the same as an async_reader and will select the ``slave_connection``"},{"line_number":13,"context_line":"    parameter to connect to the database if present."},{"line_number":14,"context_line":"    When setting this parameter to ``False``, make sure your cluster lag is"},{"line_number":15,"context_line":"    not a problem or set ``wsrep_sync_wait`` accordingly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"cb10f324_176ad7c1","line":15,"range":{"start_line":15,"start_character":27,"end_line":15,"end_character":42},"updated":"2025-08-14 16:05:00.000000000","message":"nit: s/mysql_wsrep_sync_wait\n\nDid not notice it was here as well as the option help text.","commit_id":"5b6d17a221ff166271b3784980a956cc7be4919c"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"4fa330cf1a5392b076f4ad6bdc2531eabf205322","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    works the same as an async_reader and will select the ``slave_connection``"},{"line_number":13,"context_line":"    parameter to connect to the database if present."},{"line_number":14,"context_line":"    When setting this parameter to ``False``, make sure your cluster lag is"},{"line_number":15,"context_line":"    not a problem or set ``wsrep_sync_wait`` accordingly."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"4c43be9d_3204ad01","line":15,"range":{"start_line":15,"start_character":27,"end_line":15,"end_character":42},"in_reply_to":"cb10f324_176ad7c1","updated":"2025-09-04 10:29:54.000000000","message":"Done","commit_id":"5b6d17a221ff166271b3784980a956cc7be4919c"}]}
