)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"87b6eb0415b03cbc104925790b3c1c6e8a78b731","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"888f42db_09d84c31","updated":"2022-03-25 15:53:49.000000000","message":"\u003e Patch Set 8:\n\u003e \n\u003e \u003e Patch Set 8: Code-Review-1\n\u003e \u003e \n\u003e \u003e -1 just for the questions (for visibility):\n\u003e \u003e 1) how can we control the IDL is connected to a DB backup node?\n\u003e You just point the ovsdb connection string to the backup node.\n\u003e \n\u003e \u003e 2) when the metadata is created, it performs just one write. Do we improve the performance removing this write command?\n\u003e \n\u003e Removing the write doesn\u0027t improve performance, it\u0027s just that it is impossible to write to the backup since it is read-only. So removing the write is necessary to be able to use backup servers.\n\nRight, understood. I think this is a good improvement. The admin, of course, needs to know the metadata agent won\u0027t appear in the agent list, but this is commented in the config option description.\n\n+1 only for this nit. But I think you need to rebase, so ping me as soon as you have an updated patch.\n\nThanks!","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":30200,"name":"qinhaizhong","email":"qinhaizhong01@inspur.com","username":"qinhaizhong01"},"change_message_id":"e9f23ed7b6a1bbeb0fc4b85b4e5798091291d2aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"cd20fdfe_da9bbe5d","updated":"2021-12-17 02:08:02.000000000","message":"\u003e Patch Set 8:\n\u003e \n\u003e \u003e Patch Set 8: Code-Review-1\n\u003e \u003e \n\u003e \u003e -1 just for the questions (for visibility):\n\u003e \u003e 1) how can we control the IDL is connected to a DB backup node?\n\u003e You just point the ovsdb connection string to the backup node.\n\u003e \nSince version 2.13.3 of python-ovs, the ovsdb IDL module automatically connects to the leader node of ovn-nb and ovn-sb.\nIf you want to control the ovsdb idl connection to the backup node, you need to modify the python-ovs library to achieve it, so it is not recommended\n\u003e \u003e 2) when the metadata is created, it performs just one write. Do we improve the performance removing this write command?\n\u003e \n\u003e Removing the write doesn\u0027t improve performance, it\u0027s just that it is impossible to write to the backup since it is read-only. So removing the write is necessary to be able to use backup servers.\n\n","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"68c8011b01be2627890ce6a863f2419eafc0c885","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"99f65f18_c10dfaa0","in_reply_to":"3e522eba_42bb7fe0","updated":"2022-01-12 19:18:20.000000000","message":"by the DB backup node it means backup in Pacemaker, not in the RAFT cluster. It means we set IPs of all nodes and agent will not perform any write operation.","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"87b6eb0415b03cbc104925790b3c1c6e8a78b731","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fb4b2147_6eea0682","in_reply_to":"99f65f18_c10dfaa0","updated":"2022-03-25 15:53:49.000000000","message":"Understood: we can point to a backup node (that cannot be used to write) and just execute read operations. Perfect.","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":30200,"name":"qinhaizhong","email":"qinhaizhong01@inspur.com","username":"qinhaizhong01"},"change_message_id":"9ab0ede66007c55531a5d3ec1402ff7515ee137c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3e522eba_42bb7fe0","in_reply_to":"cd20fdfe_da9bbe5d","updated":"2021-12-17 02:32:42.000000000","message":"\u003e \u003e Patch Set 8:\n\u003e \u003e \n\u003e \u003e \u003e Patch Set 8: Code-Review-1\n\u003e \u003e \u003e \n\u003e \u003e \u003e -1 just for the questions (for visibility):\n\u003e \u003e \u003e 1) how can we control the IDL is connected to a DB backup node?\n\u003e \u003e You just point the ovsdb connection string to the backup node.\n\u003e \u003e \n\u003e Since version 2.13.3 of python-ovs, the ovsdb IDL module automatically connects to the leader node of ovn-nb and ovn-sb.\n\u003e If you want to control the ovsdb idl connection to the backup node, you need to modify the python-ovs library to achieve it, So I think there is no effective means to control the IDL connection to the backup node.\n\u003e \u003e \u003e 2) when the metadata is created, it performs just one write. Do we improve the performance removing this write command?\n\u003e \u003e \n\u003e \u003e Removing the write doesn\u0027t improve performance, it\u0027s just that it is impossible to write to the backup since it is read-only. So removing the write is necessary to be able to use backup servers.\n\u003e \n\u003e","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"248a1a7db154659e8d069cff47cc7b9275d0583f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"10d80fc8_5ca89318","updated":"2022-03-31 14:18:04.000000000","message":"Is this relevant with RAFT? Need to any notes to the commit msg/reno?","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1cf5335d8fa699f5f12ac0e117b68a419689cdc6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"6acde922_dd8b5fd4","updated":"2022-03-31 10:32:48.000000000","message":"recheck","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c27f24eb951547db47afdcb2aae154a7b7605332","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b79122d5_af4e8a62","updated":"2022-03-25 20:08:28.000000000","message":"recheck","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fee49a667349f63fa3bb748f324611511e607be2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"59d60d6d_51fc1958","in_reply_to":"10d80fc8_5ca89318","updated":"2022-04-01 21:20:29.000000000","message":"I think it\u0027s still relevant. It doesn\u0027t change how and to what nodes metadata agent connects but if they report its status or not. I think the raft doesn\u0027t play a role here.","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"c9f11a968c99f643bd1ff4215029a364c87806e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e3080768_1c7ed86d","in_reply_to":"59d60d6d_51fc1958","updated":"2022-04-01 21:28:43.000000000","message":"i think it does play a role. The seed of this patch was the performance and scale issues with non RAFT OVN dbs. Otherwise we wouldn’t be doing this, the same way we don’t do it for any other Neutron agent. Am I right?","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"920a28ec613c9a4a8a6f11e016db88d6dcd050d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e808c336_586f5917","in_reply_to":"e3080768_1c7ed86d","updated":"2022-04-01 21:43:48.000000000","message":"Yes, there were also other patches because of that. However, this patch in isolation just disables reporting. It doesn\u0027t make any change of how agents connect to the nodes. For RAFT vs. pcmk you\u0027d need to reconfigure the connection strings which was already done in other patches for different projects. Those patches are useless if agent keeps writing.","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"7a8a8b2541fdc0d5aa6415ca1012a22c7d42205d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4bf416cb_fcbb0f91","in_reply_to":"e808c336_586f5917","updated":"2022-04-04 15:08:59.000000000","message":"Feels like disabling the agent reporting is to workaround a limitation that is addressed now properly with RAFT.\nif feels weird to disable reporting just here now while the other neutron agents don’t have the option (maybe they do?).\nin any case, I understand the rationale of this (hence I +1’ed) but just making sure that it is the direction we want to take.\n\nThose other projects (TripleO) will enable just RAFT and no pacemaker - not even optionally -. in such case we probably won’t ever need this patch at all. In isolation, with other deployers, maybe it makes sense but still it feels like a workaround for a deeper problem.\n\nthat said I keep my +1 :)","commit_id":"710c15e5cf485ea0dce8cc979123a6da4d54ace9"}],"neutron/agent/ovn/metadata/agent.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"f4a6ef18bad40e0233805a010e011e3dc48b84bc","unresolved":true,"context_lines":[{"line_number":239,"context_line":"            PortBindingChassisCreatedEvent(self),"},{"line_number":240,"context_line":"            PortBindingChassisDeletedEvent(self),"},{"line_number":241,"context_line":"        )"},{"line_number":242,"context_line":"        self.sb_idl \u003d ovsdb.MetadataAgentOvnSbIdl("},{"line_number":243,"context_line":"            chassis\u003dself.chassis,"},{"line_number":244,"context_line":"            tables\u003dtables,"},{"line_number":245,"context_line":"            events\u003devents).start()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def _get_own_chassis_name(self):"},{"line_number":248,"context_line":"        \"\"\"Return the external_ids:system-id value of the Open_vSwitch table."}],"source_content_type":"text/x-python","patch_set":2,"id":"28f131b7_cd55b429","line":245,"range":{"start_line":242,"start_character":0,"end_line":245,"end_character":34},"updated":"2021-06-04 07:33:59.000000000","message":"no need to handle the Chassis_Private case here? Also, no need to react to chassiscreatedevent either?","commit_id":"c2992351d1d39215f37d5d5376f9bbcca34f12bd"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8f839da359ccbe4edfad774254474cfea03d8735","unresolved":true,"context_lines":[{"line_number":239,"context_line":"            PortBindingChassisCreatedEvent(self),"},{"line_number":240,"context_line":"            PortBindingChassisDeletedEvent(self),"},{"line_number":241,"context_line":"        )"},{"line_number":242,"context_line":"        self.sb_idl \u003d ovsdb.MetadataAgentOvnSbIdl("},{"line_number":243,"context_line":"            chassis\u003dself.chassis,"},{"line_number":244,"context_line":"            tables\u003dtables,"},{"line_number":245,"context_line":"            events\u003devents).start()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def _get_own_chassis_name(self):"},{"line_number":248,"context_line":"        \"\"\"Return the external_ids:system-id value of the Open_vSwitch table."}],"source_content_type":"text/x-python","patch_set":2,"id":"47e1f54c_3bbd2d15","line":245,"range":{"start_line":242,"start_character":0,"end_line":245,"end_character":34},"in_reply_to":"28f131b7_cd55b429","updated":"2021-06-09 12:37:33.000000000","message":"Chassis_private is not needed as this is for the agent api. The chassisredirect is stored in the port_binding table, so it will remain unchanged.","commit_id":"c2992351d1d39215f37d5d5376f9bbcca34f12bd"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"f555ab12c0a345f4b9a3ce7cb4bcf42e0d06d24b","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            PortBindingChassisCreatedEvent(self),"},{"line_number":240,"context_line":"            PortBindingChassisDeletedEvent(self),"},{"line_number":241,"context_line":"        )"},{"line_number":242,"context_line":"        self.sb_idl \u003d ovsdb.MetadataAgentOvnSbIdl("},{"line_number":243,"context_line":"            chassis\u003dself.chassis,"},{"line_number":244,"context_line":"            tables\u003dtables,"},{"line_number":245,"context_line":"            events\u003devents).start()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def _get_own_chassis_name(self):"},{"line_number":248,"context_line":"        \"\"\"Return the external_ids:system-id value of the Open_vSwitch table."}],"source_content_type":"text/x-python","patch_set":2,"id":"64c42f47_997111cf","line":245,"range":{"start_line":242,"start_character":0,"end_line":245,"end_character":34},"in_reply_to":"47e1f54c_3bbd2d15","updated":"2022-03-25 15:43:00.000000000","message":"Done","commit_id":"c2992351d1d39215f37d5d5376f9bbcca34f12bd"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"f6a3dfbcd5b05964c888e8b083a903e01a9ec88d","unresolved":true,"context_lines":[{"line_number":519,"context_line":"        super().start()"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        # Register the agent with its corresponding Chassis"},{"line_number":522,"context_line":"        self.register_metadata_agent()"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"    def create_sb_idl(self):"},{"line_number":525,"context_line":"        tables \u003d (\u0027Encap\u0027, \u0027Port_Binding\u0027, \u0027Datapath_Binding\u0027, \u0027SB_Global\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2a7068e0_7bf6aba2","line":522,"updated":"2021-09-21 15:52:10.000000000","message":"This used to be called before start\u0027s proxy.wait(). Calling it after breaks metadata agent registration.","commit_id":"c2992351d1d39215f37d5d5376f9bbcca34f12bd"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"f555ab12c0a345f4b9a3ce7cb4bcf42e0d06d24b","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        super().start()"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"        # Register the agent with its corresponding Chassis"},{"line_number":522,"context_line":"        self.register_metadata_agent()"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"    def create_sb_idl(self):"},{"line_number":525,"context_line":"        tables \u003d (\u0027Encap\u0027, \u0027Port_Binding\u0027, \u0027Datapath_Binding\u0027, \u0027SB_Global\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"20ed6403_8145c75b","line":522,"in_reply_to":"2a7068e0_7bf6aba2","updated":"2022-03-25 15:43:00.000000000","message":"Done","commit_id":"c2992351d1d39215f37d5d5376f9bbcca34f12bd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"87b6eb0415b03cbc104925790b3c1c6e8a78b731","unresolved":true,"context_lines":[{"line_number":520,"context_line":""},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"class MetadataAgent(MetadataAgentNoReporting):"},{"line_number":523,"context_line":"    def start(self):"},{"line_number":524,"context_line":"        super().start()"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def pre_wait(self):"},{"line_number":527,"context_line":"        # Register the agent with its corresponding Chassis"}],"source_content_type":"text/x-python","patch_set":8,"id":"24da2ad5_b6d39bd6","line":524,"range":{"start_line":523,"start_character":4,"end_line":524,"end_character":23},"updated":"2022-03-25 15:53:49.000000000","message":"nit: not needed","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"df665a5c52f4e69c256bd0f7ddfffb285fac6e36","unresolved":false,"context_lines":[{"line_number":520,"context_line":""},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"class MetadataAgent(MetadataAgentNoReporting):"},{"line_number":523,"context_line":"    def start(self):"},{"line_number":524,"context_line":"        super().start()"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def pre_wait(self):"},{"line_number":527,"context_line":"        # Register the agent with its corresponding Chassis"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a6fe657_85051a39","line":524,"range":{"start_line":523,"start_character":4,"end_line":524,"end_character":23},"in_reply_to":"24da2ad5_b6d39bd6","updated":"2022-03-25 17:26:40.000000000","message":"Done","commit_id":"f928e4a8ac4167e6defc06d36a19b462ea31e36c"}],"neutron/conf/agent/ovn/metadata/config.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c7e36af5560ff8d821754212626ff49278ba6f06","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027report_agent\u0027,"},{"line_number":38,"context_line":"                default\u003dTrue,"},{"line_number":39,"context_line":"                help\u003d_("},{"line_number":40,"context_line":"                    \u0027Toggle if agent should report itself to the agent API.\u0027)),"},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aeac017_a14db559","line":40,"updated":"2021-06-17 07:10:21.000000000","message":"Maybe You can explain shortly here what are the pros and cons of each choose here?","commit_id":"801bc9d7a804569f20f72325cf98bc8494ac42ed"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"bc4860118185424e322c62e35c0015e881aa8797","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027report_agent\u0027,"},{"line_number":38,"context_line":"                default\u003dTrue,"},{"line_number":39,"context_line":"                help\u003d_("},{"line_number":40,"context_line":"                    \u0027Toggle if agent should report itself to the agent API.\u0027)),"},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ee08c830_51bcba7d","line":40,"in_reply_to":"7aeac017_a14db559","updated":"2021-06-18 12:06:56.000000000","message":"Good idea, thanks.","commit_id":"801bc9d7a804569f20f72325cf98bc8494ac42ed"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6d14febf1cb102fa51a0bcfdcd141598779dbb7b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    cfg.BoolOpt(\u0027report_agent\u0027,"},{"line_number":38,"context_line":"                default\u003dTrue,"},{"line_number":39,"context_line":"                help\u003d_("},{"line_number":40,"context_line":"                    \u0027Toggle if agent should report itself to the agent API.\u0027)),"},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2bf7cf91_0da13a17","line":40,"in_reply_to":"ee08c830_51bcba7d","updated":"2022-03-25 15:43:32.000000000","message":"Done","commit_id":"801bc9d7a804569f20f72325cf98bc8494ac42ed"}]}
