)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"97b5966a2f29f3c9c6b336f34f1592a8f1a247f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e08c5273_1bd48b6f","updated":"2022-09-13 18:50:17.000000000","message":"Unit test failure is a known bug being worked on","commit_id":"7ef0fd0ced952bca9ffaefb0139b421a3beffff4"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"88a9e70a1876c26006daa683eda127366dce1534","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5ccdea39_fccfb45e","updated":"2022-09-14 18:35:08.000000000","message":"recheck","commit_id":"9655466763282f47a06862a47f7f31b48130277e"}],"neutron/common/ovn/hash_ring_manager.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"97b5966a2f29f3c9c6b336f34f1592a8f1a247f4","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        self.admin_ctx \u003d context.get_admin_context()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @property"},{"line_number":43,"context_line":"    def _wait_startup_before_caching(self):"},{"line_number":44,"context_line":"        # NOTE(lucasagomes): Some events are processed at the service\u0027s"},{"line_number":45,"context_line":"        # startup time and since many services may be started concurrently"},{"line_number":46,"context_line":"        # we do not want to use a cached hash ring at that point. This"}],"source_content_type":"text/x-python","patch_set":1,"id":"0113e29a_4be0c658","line":43,"updated":"2022-09-13 18:50:17.000000000","message":"nit: There is a unit test for this method, could update to verify LOG.debug not called.","commit_id":"7ef0fd0ced952bca9ffaefb0139b421a3beffff4"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"303d9028a22bc90fe62a4f680156428e6be13cf4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        self.admin_ctx \u003d context.get_admin_context()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @property"},{"line_number":43,"context_line":"    def _wait_startup_before_caching(self):"},{"line_number":44,"context_line":"        # NOTE(lucasagomes): Some events are processed at the service\u0027s"},{"line_number":45,"context_line":"        # startup time and since many services may be started concurrently"},{"line_number":46,"context_line":"        # we do not want to use a cached hash ring at that point. This"}],"source_content_type":"text/x-python","patch_set":1,"id":"690efce5_3d929c63","line":43,"in_reply_to":"0113e29a_4be0c658","updated":"2022-09-14 10:51:45.000000000","message":"Done","commit_id":"7ef0fd0ced952bca9ffaefb0139b421a3beffff4"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"83602a2438d83613b033c1acdd5cd953c5e1a1d6","unresolved":true,"context_lines":[{"line_number":86,"context_line":"                self._hash_ring is None or"},{"line_number":87,"context_line":"                not self._hash_ring.nodes or"},{"line_number":88,"context_line":"                cache_timeout \u003e\u003d self._last_time_loaded):"},{"line_number":89,"context_line":"            nodes \u003d db_hash_ring.get_active_nodes("},{"line_number":90,"context_line":"                self.admin_ctx,"},{"line_number":91,"context_line":"                constants.HASH_RING_NODES_TIMEOUT, self._group)"},{"line_number":92,"context_line":"            self._hash_ring \u003d hashring.HashRing({node.node_uuid"}],"source_content_type":"text/x-python","patch_set":1,"id":"e8a6bbab_22461dc8","line":89,"updated":"2022-09-13 20:57:03.000000000","message":"Even with the change to limit the amount of log spam, this\u0027ll still be really nuts when we get a million ovsdb row events and get_node() is called in notify() so we end up doing 2 million calls to get_active_nodes (in wait_startup_before_caching and here). I know python-ovs basically will make a list of all of the events that happen in a single message, and send then loop through them sending all of the notifications, so this happens very very fast.\n\nJust brainstorming, but it seems like maybe it would be beneficial to have the api workers wait for the MaintenanceWorker to spawn before connecting to the ovn dbs, maybe with just the hash ring periodics, then if it\u0027s the MaintenanceWorker, add the other periodics. That way we could ensure that touch_nodes is actually called by that worker while we\u0027re processing the db notifications.","commit_id":"7ef0fd0ced952bca9ffaefb0139b421a3beffff4"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1a1e2c28e1c429c95498b71d7d2eb9b9cb280eba","unresolved":true,"context_lines":[{"line_number":86,"context_line":"                self._hash_ring is None or"},{"line_number":87,"context_line":"                not self._hash_ring.nodes or"},{"line_number":88,"context_line":"                cache_timeout \u003e\u003d self._last_time_loaded):"},{"line_number":89,"context_line":"            nodes \u003d db_hash_ring.get_active_nodes("},{"line_number":90,"context_line":"                self.admin_ctx,"},{"line_number":91,"context_line":"                constants.HASH_RING_NODES_TIMEOUT, self._group)"},{"line_number":92,"context_line":"            self._hash_ring \u003d hashring.HashRing({node.node_uuid"}],"source_content_type":"text/x-python","patch_set":1,"id":"c505daf8_a5989545","line":89,"in_reply_to":"e8a6bbab_22461dc8","updated":"2022-09-14 08:38:00.000000000","message":"I am a bit confused. So the idea would be to prevent having the periodics from the maintenance task + OVSDB events being processed at the same time ?\n\nBut that wouldn\u0027t solve the problem of the millions of OVSDB events in the first place right ?","commit_id":"7ef0fd0ced952bca9ffaefb0139b421a3beffff4"}]}
