)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34520,"name":"Sergiy Markin","email":"smarkin@mirantis.com","username":"sm515x"},"change_message_id":"c5de1211b6b499e50e592ce7c2aa20e8bacc208f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d4cd8f90_0bd2b484","updated":"2026-10-30 16:46:15.000000000","message":"recheck","commit_id":"965472a12047fdedb8e6c4276f9737c609b6ab8d"},{"author":{"_account_id":34520,"name":"Sergiy Markin","email":"smarkin@mirantis.com","username":"sm515x"},"change_message_id":"3667a0d61598e1f2a830aa810604474273b25012","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ca19422f_7cb74e43","updated":"2026-11-04 22:42:39.000000000","message":"recheck","commit_id":"ca45afd4ab9a69bbeac8148fb7e486a961cc586f"},{"author":{"_account_id":34520,"name":"Sergiy Markin","email":"smarkin@mirantis.com","username":"sm515x"},"change_message_id":"bc1fecf5f1d76cb00e10b2196dbcc5ffe9802a51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ca8960c3_460ef2bd","updated":"2026-11-04 15:58:18.000000000","message":"recheck","commit_id":"ca45afd4ab9a69bbeac8148fb7e486a961cc586f"},{"author":{"_account_id":34520,"name":"Sergiy Markin","email":"smarkin@mirantis.com","username":"sm515x"},"change_message_id":"750539bec1bc94bbdeda7c6253ce7a9e481d9b2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1b3f9d6a_037863bb","updated":"2026-11-05 20:19:02.000000000","message":"recheck","commit_id":"01070090930d13cb2e969ccbff41851f11e0a51f"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"b686c2cc9b3c3aeb71dc03309a4d8780d68ed6f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"5eba4bcc_1a4dd201","updated":"2026-11-05 20:10:00.000000000","message":"recheck","commit_id":"01070090930d13cb2e969ccbff41851f11e0a51f"}],"mariadb/templates/bin/_mariadb_db_controller.py.tpl":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"1b14546694b4fbb982f72f054c9b568552ea8ced","unresolved":true,"context_lines":[{"line_number":984,"context_line":"    if obj.kind \u003d\u003d \"User\":"},{"line_number":985,"context_line":"        password, _ \u003d user_password(spec)"},{"line_number":986,"context_line":"    elif obj.kind \u003d\u003d \"Connection\":"},{"line_number":987,"context_line":"        password \u003d connection_password(spec)"},{"line_number":988,"context_line":"    extra \u003d \"\""},{"line_number":989,"context_line":"    if password is not None:"},{"line_number":990,"context_line":"        extra \u003d hashlib.sha256(password.encode(\"utf-8\")).hexdigest()"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"24d5f5e4_bb514fe1","line":987,"updated":"2026-11-02 22:14:05.000000000","message":"We have to be careful with this. Now the password is read on every sweep which means if we have dozens of Connection objects then it can increase the API load.","commit_id":"3c15dc893dc56d82d4b1a65e2a0ccb7a6577d4b0"},{"author":{"_account_id":34520,"name":"Sergiy Markin","email":"smarkin@mirantis.com","username":"sm515x"},"change_message_id":"d263da2a87cb2b4ffe304b6071a17b3867f6e822","unresolved":false,"context_lines":[{"line_number":984,"context_line":"    if obj.kind \u003d\u003d \"User\":"},{"line_number":985,"context_line":"        password, _ \u003d user_password(spec)"},{"line_number":986,"context_line":"    elif obj.kind \u003d\u003d \"Connection\":"},{"line_number":987,"context_line":"        password \u003d connection_password(spec)"},{"line_number":988,"context_line":"    extra \u003d \"\""},{"line_number":989,"context_line":"    if password is not None:"},{"line_number":990,"context_line":"        extra \u003d hashlib.sha256(password.encode(\"utf-8\")).hexdigest()"}],"source_content_type":"text/x-smarty","patch_set":5,"id":"e0554498_2b9b421d","line":987,"in_reply_to":"24d5f5e4_bb514fe1","updated":"2026-11-04 15:58:07.000000000","message":"Agreed. The User has always read its password secret on every sweep, and the Connection now adds one more read. In OSH the User and the Connection of a service reference the same password secret, so the controller now reads each secret at most once per sweep and drops the cache at the start of the next one. Freshness is unchanged. Measured on a stand with one User and one Connection: secret GETs per steady-state sweep went from 2 with this patchset to 1, the same as before it. As a side effect, the User and the Connection see the same snapshot of the password within a sweep.\nIn steady state a sweep issues 4 LISTs plus one GET per distinct password secret, every 10 s; a GET took about 5 ms on the stand. A full OpenStack deployment has a couple of dozen database services, so about 3 requests per second.","commit_id":"3c15dc893dc56d82d4b1a65e2a0ccb7a6577d4b0"}]}
