Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxN6B-0008Uz-K0 for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 06:49:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oxN6A-0008Qb-Az for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 06:49:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxN69-0008QS-Ts for pgsql-hackers@lists.postgresql.org; Tue, 22 Nov 2022 06:49:38 +0000 Received: from esa4.fujitsucc.c3s2.iphmx.com ([68.232.151.214]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxN66-00074U-Mk for pgsql-hackers@postgresql.org; Tue, 22 Nov 2022 06:49:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1669099775; x=1700635775; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=jQPO2+6mYxn54oTZjONoqv4YfeFmwwF3tG+m+xCLpDc=; b=KCxs+gSgFqR8BrW/TQJCjhQV4WZJeXNMsbcosy5qmvnxLgTreZlKzO6Y PLhjBcEgaxA5OT+bDl5+ll51EGK1f31XAH+ambsRA2feT4i90a9DjC3A+ yfOiNyNWRELH4iWoxqL+MkGoS/VouxLI3HyqVGye45cGCc1UEAk3+GayQ UMjjGtzjC2WJv4aJqgTSnQnedG8d6PlbwEtevsMxMuiycZGs4koYJIHHc B/htBxqPSb6eU6bPnTDpy+RDaUAzybim+qQUKZagqGUIF/zx7DZIlizqU 4NrdPk7/NwX3ux4yLx97Gc+JJL6kKmupFzShVWrsNkpGH6zq4ubRg0JQG g==; X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="78443678" X-IronPort-AV: E=Sophos;i="5.96,183,1665414000"; d="scan'208";a="78443678" Received: from mail-os0jpn01lp2106.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.106]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2022 15:49:33 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=awfFqfm73sfv+SokAME8icKp/+paV3MwUwZ6FMQ12HAD8wgKCOFowgrgtVZT+3HxkRRVOHtHDBYIzSS8XtlFxu8brv7AyK3KFNnYmE/kqgpBdf42EnBhvcX2MjSz9Auhop3CwPDkK/PxTOLxLsWPXtFIY9tJhr7Nwc1SJCerJ66QunNq3yd47/o3JV1DW361sjcMUsxDUNAIfgNCB99UfBWHHLsGa9ocMp05SIh+JZ1A9ImToSBlmPENvK2rSAXrgHqb5s/GPYOuN+kUfDD7FzSWZC+nbAZk7GnWp26vhPv/vN3k9eZEw644FfrJgysCL0BZsrD/B65nHOR3XS/a6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8NKeVh7zJdBKg1Q2+0WZBpGmTL+J5O+/CPG2RFSimwc=; b=YCoGPPs6n33XSk1PHROESHOpg4ppu11WkmtQIOQkEJ+4Rr90kPc6wMePiGNwt7g5GAIx+BZ62uiCTNM9/ux1cF12oTvmv2e8OtBmw5Ba3cR30wyuyRwEMjNEG9P3xp29ftKXewVrvOVZHLsHPYFuD3pV9mM9V0RekgkR93kOyoduso5ZdkwtbWKZujHw5Vg9ml42BbEyFvJWj7ics7dQDPdbFnpe7uE6NUpKhtO+ug1lFsP+Tr1aCMn9CaIXQTh+rvGMOh4XwCps3PMrTFP4vBk+yGNdmZOPCSyAkh6cAlOot2rh/93fvauSonz3B5SRzYtd34FD0CbpiNPztb0iOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from TYAPR01MB5866.jpnprd01.prod.outlook.com (2603:1096:404:8056::13) by TYVPR01MB10637.jpnprd01.prod.outlook.com (2603:1096:400:29a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Tue, 22 Nov 2022 06:49:29 +0000 Received: from TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::f4b:1dbf:dc2:dc91]) by TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::f4b:1dbf:dc2:dc91%5]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 06:49:29 +0000 From: "Hayato Kuroda (Fujitsu)" To: 'Nathan Bossart' CC: "pgsql-hackers@postgresql.org" Subject: RE: wake up logical workers after ALTER SUBSCRIPTION Thread-Topic: wake up logical workers after ALTER SUBSCRIPTION Thread-Index: AQHY/gstJTOw1KVvYkmzgq5jwtGOWq5KPp3ggAAeDQCAABlmgA== Date: Tue, 22 Nov 2022 06:49:29 +0000 Message-ID: References: <20221122004119.GA132961@nathanxps13> <20221122043916.GA230228@nathanxps13> In-Reply-To: <20221122043916.GA230228@nathanxps13> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2022-11-22T06:13:33Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=81034a9a-5e0e-43ca-a18e-c3c868196509; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYAPR01MB5866:EE_|TYVPR01MB10637:EE_ x-ms-office365-filtering-correlation-id: 91ac0fa3-576d-4b99-c323-08dacc55b480 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PLp3n1qg2w42N4Xt+WTO+z/5L0fJjxn1RHW9SCu+WNIkYosZ4Bp4HP82JEbT8G6jPpGOXTXE20CfNkqxrLa77isP+YlKcdr3VOqHEVwSXiWp9Cir3s/9moyHB8Fp/Du8hFmfePblKvBADbsvQF7KaejsmH6HBSb58HadLYDkJEj+w06x6+BOHH4+pTfka3qN93l2CsYFPLI3EDe2oIdIJoLwnPueEGBn1twE79J4LFAjNcvFfnh2ldzvqse5mtGsGfpixNA+fho4qE46tnRNpnkeC3Ss6w+giH9B9sbJwYrQI8P6fpD3JU5HVlCd/UARFOYCdKJoz0no6lr77mNYGSNh3/CDYAAkLWqR6PA2BREKZw6lVpVWbHEL+6V06mp/2Jo7k6lG/gkHpjkf8mu+x22kFw5qlIcPtEIDTjLJ7RLUtz3/edDaPIQzN/JdS8UhduE61iASf/tBlyN1kYIh+YjhLahfRUlC6IZ2miwiU+9FcwinLYUVwLTjD7uoxlJ2d7GbQJnKrx6kD3brJnXMQNQOIAr+E5RoDfsQbUaXm/FViQdJHZ0/WrJHx5RD1D/rpiMKH57HfGn4BvJL6+cJ2vjWRaB3CeOb0LvyswQzo8Cp+v6MblckbziWqnXK6VT7BMwRxs7En9MKtrsR5phjx3IhJ3dOo3ukpd3hHY1sHOS/DJK55yPFFdoHL7tVQSafBflraqUCWgnMee4+BecADxGcKOeJTd9zE1GIJWLFGPw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB5866.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(376002)(396003)(39860400002)(136003)(346002)(1590799012)(451199015)(85182001)(86362001)(9686003)(26005)(6916009)(7696005)(6506007)(2906002)(186003)(52536014)(33656002)(55016003)(4744005)(5660300002)(66446008)(66476007)(66556008)(76116006)(64756008)(4326008)(66946007)(8676002)(8936002)(83380400001)(478600001)(41300700001)(38100700002)(71200400001)(82960400001)(38070700005)(122000001)(316002)(1580799009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?eTJrVmJHZTRscGRDUFNOUUhVQlZINnR0T0JXWmxVamE3NWdwUnR0WDJT?= =?iso-2022-jp?B?bUs0YlE4MGovUWx2ZmJRUTFpWlc0cmpRM2ZHZVF4c1Y4eW9KaEVZVTRV?= =?iso-2022-jp?B?dUt2M1ZRWlZWS2pSU3R5MzNhck9aNnFDQXhoYW1iOTlSZHN0b1B5TFJq?= =?iso-2022-jp?B?QjRlRjBXa21xTUM4K0Z1a2ZQSzgrRkxTUUp5RDJhOHoyMmNEWkp0bjJj?= =?iso-2022-jp?B?ckt3dWdWQXdoaDFjMy93MUtwbnh3RXhuUWJSejA5ZjhLR1YvdWRNMXly?= =?iso-2022-jp?B?eUtHKzY0RnpLQ3YyU0JieWM2SS9RVURTUk1oUTNndkJTakdoRTNyV1Bz?= =?iso-2022-jp?B?aVNDanNtV01NTVZSMTZDb2lZTi9WdFVRcjRIOEZtMFlscnpFMnhnS1Fi?= =?iso-2022-jp?B?R3hraEhOdmgvMEVya0tZV3dLZTIzOGI4UnVWVnR5bmRRQk1RdytBRzhN?= =?iso-2022-jp?B?di8xMmJjdFc0TFVSVE1VY1Y3NVJBNzhpdGIzWkR2OXRZL0Zxd3BZVjJ1?= =?iso-2022-jp?B?dVUyUkMrdEI3OWJSbWFzZko1V1ZiU0Nud1hTRkdmVWtBTEx1eXl6TkVT?= =?iso-2022-jp?B?d1FTUnJaNTZ3OTJ3aXdvaEU1Q0RwR2ZHajduQXIrZHVBZnk1a0FzcUYz?= =?iso-2022-jp?B?MGdtcFkrandxbDNCZmRaeEVrZ2lrS2E4MUJVUmdBU1RTU0NzYVBzR2tC?= =?iso-2022-jp?B?cktYSkwwdTFYZnZNMHhnNmtaWlI5dEtESFRHNlhrZTZvTTNxbzBvWW83?= =?iso-2022-jp?B?aTdnVzRXOUtHaEI0KzN6aFNILzVjSTcwSFBJTWlVR2EyNmFaeUl6eFp5?= =?iso-2022-jp?B?R0hHY3hhZit0RlhnTVp1Y0dHbUdqWDhJcWZXOTFPWHdRNDVqanNnNmJu?= =?iso-2022-jp?B?c0NJdlltSHhxK0tHZENvYjBWWVVYMlpiOWVFYk1PWVV1TStrdWNRVU4r?= =?iso-2022-jp?B?d0RKdHFiQ1NwUEtZZXJoWW1VZHdKdkllN3NvTUU1S0RUdFV5bE1YNlls?= =?iso-2022-jp?B?ZjNVaWVlb1BuNEIrWTNORVltU2pEUFhTUHpHaTZpeU5TQ3VTY1dMdUhK?= =?iso-2022-jp?B?YkhOV1VkVEhiSWxkL3UzRWtuMVAyZ003ci9IWmUvWTJMa25DUCt6Nzhi?= =?iso-2022-jp?B?ZXdYMUFYbFA3ZDJLQ1dFS2c3VDU3eDVJb21HM2MrSXV6Nm5RRkQwSXMr?= =?iso-2022-jp?B?T1hReWMweDZyZHBQSjdXYlFYS3FjOGY2cW9nOXdFeUl0Q1VScHZ5anhI?= =?iso-2022-jp?B?VEx6RzN0OUdGbEU1SWgrU2plajVsanFIVDVaSlVMeW5NMXJKc0NqbjJU?= =?iso-2022-jp?B?cWNuZmlHdDlTT0tqYlo4dWhWbzRWNHFaZnZ1Y0xTTkR2bUVUTkwrYkJV?= =?iso-2022-jp?B?dnNYZlVmcE8xa0x5dTFLODRXdXZWVTczMnRNbTlLZEFiRmFzcC9PQk8v?= =?iso-2022-jp?B?ZTBBeDhRbG9LOHdiaDFpMzEvalhSRmJDZ3UyR1ZrazdLZFJmOGx0YnBn?= =?iso-2022-jp?B?alc2eFZTajhzNW1yQU4yOWRyU2xOaHNWMzJPRmxLN1IxUVZPaTAzd0JB?= =?iso-2022-jp?B?emVWVWx6aTEwWGJydXNZZ1NLRVpZR1FlYWJsTWdMS2NXMGVSdnQ5dVdC?= =?iso-2022-jp?B?RHE1Z1k5OTZNVjVtWFBFRFBiRHZka0NNai9Ba0FQQzYrMEF3U3VCT28x?= =?iso-2022-jp?B?L0U5ZDg5SHVTUm9nSXd0ejhKemZENTl3WDVWTTlEQUZJbVA5S2k1VzBY?= =?iso-2022-jp?B?YmFtaTBGNnlIZ0Z2U29GSFg5OHRsTUVQaTFSNm83dVhFVWw2UzdtUjNi?= =?iso-2022-jp?B?VFlmZmVNRU0xbUxmVHo0RHNyVnJFTEVPN0FNVDBMUFZyMDJvVGMyVnJR?= =?iso-2022-jp?B?VE82aWFKSWFlNUFvd3JBNWNJZThyTXFkQW9LOUhncTQ4U29Jd2FoUUNk?= =?iso-2022-jp?B?c3FRbUNva3kvZFc1STdKNzkwZE15TThPM3NsN3FwVDUyNEtvaWhySnY0?= =?iso-2022-jp?B?eW9VNU45Zkp2cXRjTWFTR1NLbW43RDRFWnBSZ2IyaFZVTjE0WnBmd0RL?= =?iso-2022-jp?B?STkxcVpxY2orNkhNTXoydjkxeFA5Vnh3K3pMT1U0YU5PelVKZFUyNTh1?= =?iso-2022-jp?B?VVhSZ1JNenRHNW9udEZZb1RGczlVYVNWM3diQjl0V004TVhjdE5EY0ZU?= =?iso-2022-jp?B?aEtHdlR3ak9rbnRSRmZSTzAxN1o2SGtRRW1BVVlBa09xZUJ6UGt0VTQw?= =?iso-2022-jp?B?MmlpMUI1TTRPOWxHUTFjb0NVdnVTTGVoWmw3dVdraXZUeXFZcmNmTnJv?= =?iso-2022-jp?B?SkozNGJrNEIrSkU2NDJTWVlxVFZuNGF5R2c9PQ==?= Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: w8MzvxnBNpBu/Bopyx/PqW4X1DjvElfOGnGulTHGTAqkpf4jb1uXw/Sak8aFczHhV43JhUzO8vsazFce5Ee5zKErwVX2tpq9AE3nLga5DnZR1muUDMVh4bahUWmVu4Oz1bfEo5eiPz6eR8Zgjqr57AM2iGiHGPgMGqVmZM+3WHmUeyFEVrvp1zC9d0Fe4MqHsOra1rWFtYEI07vFQ6PUlGsTdfb9H1w74fj6PO8ykxsL4dyo145eo4etwdmVrMk+Ge9o9GAXhGE0dzkx5F8VBLzNqIVTnZO43hlm5BpyawyZMw1vD+2NRf+pxGOuO2c0KNmsIyvjKjLYUQsL4FECeBU9wqQQ9DSENSe1iACS81RRnO91fGFBcremXi4DHM0Ue9pJv9/WiNY3fA9FkAjqNsL+gf+E9ApTaI0IDX/cnjLSulcNiW0MEqpH4RqdCO6H0tC4Zw8Lt69CLC8EfbctAzH4zLrZDAO1GgTiYkXiryWNb9+Rdq6W4sOT3QT1zLxiQweeMzMX7FqnECYCDXrGIfjKUIuSe/GpU0YvCBaM6xZgCxmm9zxFqIU10CbPfAr1kgAFZG7SQk6DcKBNxLhc+P9bFb3GR0njd2ash0z83+B1pM7iZiBarSG4A6zGMeKv4nN1cRiWvaqW0uas7FfDniCakfArA6hT/98jSsSik4DamcUNR45ByhRh/gjUWk6lZh7rh0ZlEKnNPkv4hG9E7vdmRl/72YqjJZZY1rwbRjY7G4EDW17uNUX3LQscly7MC1wbATquJ8+DF+HvqdYN5vJbwZ02bOsQJCvl+a5bDLE= X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5866.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91ac0fa3-576d-4b99-c323-08dacc55b480 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2022 06:49:29.8814 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UZ64MDSwtJ21g1UQEHha18HqGbxkU/BpOfWKOxhkXq5pT+CdJJfXrmG78CNll3xNSxLEF/MUQIunV9LHdC2XK204rRJYnk7w9eO3qLPpw8s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYVPR01MB10637 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Dear Nathan, > I think you are correct. I did it this way in v2. I've also moved the > bulk of the logic to logical/worker.c. Thanks for updating! It becomes better. Further comments: 01. AlterSubscription() ``` + LogicalRepWorkersWakeupAtCommit(subid); + ``` Currently subids will be recorded even if the subscription is not modified. I think LogicalRepWorkersWakeupAtCommit() should be called inside the if (u= pdate_tuple). 02. LogicalRepWorkersWakeupAtCommit() ``` + oldcxt =3D MemoryContextSwitchTo(TopTransactionContext); + on_commit_wakeup_workers_subids =3D lappend_oid(on_commit_wakeup_workers_= subids, + subid); ``` If the subscription is altered twice in the same transaction, the same subi= d will be recorded twice. I'm not sure whether it may be caused some issued, but list_member_oid() ca= n be used to avoid that. Best Regards, Hayato Kuroda FUJITSU LIMITED