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 1oxNfA-0001Rb-GJ for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 07:25:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oxNf9-0000ZH-65 for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 07:25:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxNf8-0000Z8-Oe for pgsql-hackers@lists.postgresql.org; Tue, 22 Nov 2022 07:25:46 +0000 Received: from esa12.fujitsucc.c3s2.iphmx.com ([216.71.156.125]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxNf5-0005zB-Ss for pgsql-hackers@postgresql.org; Tue, 22 Nov 2022 07:25:45 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1669101945; x=1700637945; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=k5on+IE3PYBft/OqpCLNbRAOuEzJrBuA0FDMYOm2EUM=; b=jBLd8K36eJ6LRhQb3bbBnkc1V23FwdijLTxBbnbZ00yi8zUT269/grIF Hswq5Ekuugsy2aVJ6Veruavk7ocd8NkRRk9FWZRoSGyU1H+sYNxlIO4wN azp/nnaUW6NtwjPRm9BTjOL0dGou5F3xYFROLCHpD2qDuQNGTWqQh+JSC 4TEOzs8qY7Zu+n4eF6o93UJaflrAAqL1UCCxyftVt270BhKKpe/2vNoAE VjAcfl1DECErm38KE4N5lhNQ54JTgDneNSqlZ1NtFBWeC/MPl47URTXsp eWXewcrbyFMZzaNGXFJwCeXwO4cLJrgRoI2burCEfZs4Zh0lVEGFC9Ljt w==; X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="70798668" X-IronPort-AV: E=Sophos;i="5.96,183,1665414000"; d="scan'208";a="70798668" Received: from mail-tycjpn01lp2172.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.172]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2022 16:25:42 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NBieoFJjudyfzjHCAOzkcSqLbVdOooCZ/7srhEgr5qrLVN+sq7DqZj+Hq4DM+M4JWlORUju5825jvwY328fWtQjbSfXwHS9p45cvgwbCHhZAwldkYXadt9rOfrUG2r4raFWwGFmnsRRt8XW4c28yo3D5KezGuD9jgDGi76vsRb8+ra+U9+hQSdQtogOc2r7dHiAmEk1vSk+RVeUVl+qX65fqSr02Vo9+XKaJUG4AzzMYmQip3tBLztS2jnP/+LSZ6/ebkWa9CS1zmqXQUBD3Oj0gCau3LeEQZKhcq2OyNs9khBgOq1lrieAulT9t7ugUl/KFeBdwf14b+WDKn2Nsug== 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=cv+mfuuQfqM76Lde1reQAmlAhuQJNXs4vWF4QM/SdZA=; b=M65MZLZJ3/tBB18h10r1vfvYvuq+mLwz9/ctDF7V9rTsu6slfbWbk2e/eHklSbbiUDhtNMLlZ/HE/Ol2PdmGtJl2l2hphGmtjrDsw9nA5u7a6Z4d2+/7SpRNHDteCfgf+CPOC6fz9lg+CAjw3dUS2MvYfxUI4n1mqFb6o3uH8163J4PpkIN4++mNaIRahrjOdUyIelcH9cJNRjC4RzL05DVRCzFRRTe2gfv+RlLjGyXlXhT22bGsshgf3dtk0ko/J3N7w5odB8LdEukujLoV12PoyIY4ekPbkqsPtL5EwrVlh7vyCu+sbeexw312HdMvCMWa7/UXX3Y28TvryVWTGg== 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 OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYWPR01MB9610.jpnprd01.prod.outlook.com (2603:1096:400:1a7::10) 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 07:25:36 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::89a3:459e:492:7bcc]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::89a3:459e:492:7bcc%9]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 07:25:36 +0000 From: "houzj.fnst@fujitsu.com" To: "Hayato Kuroda (Fujitsu)" , '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/gsr1SUvkBmm4EqPNz2YcXFOIa5KQgMAgAAapwCAACRigIAAA5JQ Date: Tue, 22 Nov 2022 07:25:36 +0000 Message-ID: References: <20221122004119.GA132961@nathanxps13> <20221122043916.GA230228@nathanxps13> In-Reply-To: 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: OS0PR01MB5716:EE_|TYWPR01MB9610:EE_ x-ms-office365-filtering-correlation-id: 506c0eca-54bb-41ed-d682-08dacc5abfd8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: foJAVoS4PwC0wnzVRJN6lOPrFScmZhumP7ZgNdB1r8ZYcZt1W+FnRGkoqXT8Nrs7inISS7uwehnBwZyFQqwFZZW7ynd84UeNStRbDeVsYZnBIrcMfUXXTv3b2MxE8EHOm03C3u+U0o+ukIidpFb7uQuh/aZmCevJcUStk7HiwS++ju1tUassC5tOCe17buqF7CnPTchzaVscHwjoOxzfYJjAojSg660tiyaURad8y7dWCif43EBTTrDLcgasXfZEbn1CKqgQzKqCvThKNu87wDb2hfD2rOz3FhZHBMgqOBiyOr5uZxmXNkKFQ+qQPPxkGUNQMr5VUhaqX4sLuCArheRIXJ3zxGQlE/9YkRVfAHLhWbo+3G+B5q8tIDsIbdcykJ5iztYMk+33f8O1hwQnxYRszfIPJrE5/c00wCf6r4GHQ0G0xTHi/dflfEyQZoQfw/7gsgm4LD9fonlh/FohqAv9MGRqtp/emM9W2I4lcJoj3LMUazLpdOrqDoFRBy1G1Cjpbhu4DSnrDsQgoCN8XF7YY0qmF0drVp0PK/k5bXg4QmMoAdAen12J6LKlHoKoc20b11hmfntQW9BowZ0PiyW9M9uYOaI3iZiYIj9n/5hvqQC/fOQRUzaVL42m5K+FlL2PeiZVe4bpqO07HLXYUR6Tcd3w0QdVMLtCC5TZT89gmYuFQ7bsZB9cmNvaZhKhkdQy4yCtd/WUV7AvYVBFl1d+bmu/R0XgqmHi+oLQ6Pk= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(376002)(346002)(366004)(396003)(451199015)(1590799012)(8936002)(122000001)(52536014)(9686003)(85182001)(5660300002)(26005)(82960400001)(38100700002)(186003)(33656002)(6506007)(316002)(86362001)(478600001)(71200400001)(38070700005)(7696005)(110136005)(41300700001)(66446008)(66556008)(66476007)(55016003)(76116006)(8676002)(64756008)(4326008)(66946007)(1580799009)(83380400001)(2906002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?Tm13OXE3UUcwQjhXUDJUdzlzNUdtRDlnODhTaUdQUjJQTFIva3dlQWtx?= =?iso-2022-jp?B?cWpzTWJ0dlZkUmowdUJta0twbHhTQzVnSEo0UW5lQXorNW1kQ1FSYnV0?= =?iso-2022-jp?B?d2RERVJCSHpJdzBDVlhPWCtLbU4rOEZ1VHc5dFlFZUcwWFNBTUZkcld2?= =?iso-2022-jp?B?am9oWFJnSkxGeEg4YmtRd3dyV0thbUFFWU9Wa0tMUzJrdjkydEI5aXF3?= =?iso-2022-jp?B?Z0Npem01WXZMNVpLSWppQjVUZnd1N0N1dERVeHV4b0d1TDBCckxvTDNs?= =?iso-2022-jp?B?MndROXRDdFA0QkQ0UUhzZ256QUQ3NVRMQnk0Mk5ueGl6eWx3MWlBbDRE?= =?iso-2022-jp?B?QjljZjVJYTU0OC9taVJhaFM3SkhXYU5aNDVIamxQZHI4ZlliRys5WjlX?= =?iso-2022-jp?B?bXJBZThINzcyWmhES3NlOUdhb3dOdlhFaGZuMlR0ZTdlS3oxWUZBd3k5?= =?iso-2022-jp?B?K0czNjNMdGlYR3NyclBpVFNTSFVKVXc0eHYxRklGZ09CamRpNEFxSHlB?= =?iso-2022-jp?B?SkdkWmIwMEJ5UFYyTG1xWHpRT29KQW1LTEVIWXBERjFtemNhMTF4cnNT?= =?iso-2022-jp?B?YVJ6eUcvS1E0KzVWc2RmVjdMV0l6ZVE3clp6a3FRNEgyM1dLTkhZM1pi?= =?iso-2022-jp?B?U0pXQngxNDNRcndJbitlZm04WkVuTnY2dlN0cCswUmRxT3M1ejUwYXhn?= =?iso-2022-jp?B?aGFKZDdhUnhCUytpQUo3SFFXZ3JQakJhWElNcWVTZHlQSisvN1dPQzBS?= =?iso-2022-jp?B?UmR2bFcxeFFBbFFPMXo4M1hnQzZQcGY2b2Mrd2lLbitHa21zVTFLTUZr?= =?iso-2022-jp?B?QUlTTzk3TG1MaUMwYXpHZTJRZ1VHdTFuellEUks5amI5N2ZSVitDWHAr?= =?iso-2022-jp?B?YnFCOVRTODBWbzNvRFFrKzFwb2k5NjZRTStGaDM5d2l3Q1hUaE5OWTk5?= =?iso-2022-jp?B?VlhTYlQrQ205RUlneWFuc0lCMnpxTTFsNTNSWk5ocG9ybkl3SE95akQw?= =?iso-2022-jp?B?VlJRMU5oMXdGZXJXMzBRSGxEczN5NjdFQTcyQUtrT3FaRFdUdDJrYkVP?= =?iso-2022-jp?B?blNsUHBpMjBtVkFaazdxRXhSU2NZNUt6bkFnRlNEVCtkalltcWh1djZu?= =?iso-2022-jp?B?b1g3R3VNcWhESU5paXFHb3hvTWlBNXRtUUdIVEJ0eWVrdkhadjZGMm1J?= =?iso-2022-jp?B?RGZRRkJOVkJqOXlaN09RQnpVM0ZqemJDcURDWFpIbFh5NHhwMDhSY0xn?= =?iso-2022-jp?B?eW11OS8vNUlSQm9Kc3BnMEhmZEFkeHJRZjRRazROMTlzd25ad0lmaEJk?= =?iso-2022-jp?B?QkJKK2V1bGQ5T3BTT3VQOGVLOFJ2VE9FODhZUllOWHplcExhMjFyaXNr?= =?iso-2022-jp?B?MVV2bTByUG5ZMjNGRjRRT2IxdXdJVEtHTkdqRUV0bWpDYUNBTlE2WCt4?= =?iso-2022-jp?B?cXZFZGVQN1B3ZWdPWWQrSVlOc0ZWZ2orRTE3dFdrMzF3ZUpiTVVJSmN3?= =?iso-2022-jp?B?ekErQTk2TWNoRDYxK2lMM0FBQ1F0S252bGNpejFEOUowaGtKSGk1T0px?= =?iso-2022-jp?B?dXZEMWpHbFk2UGh3dWhNaUlJbGRjS2NyYVNDQVJDSTNEKzF3NzhlQXpK?= =?iso-2022-jp?B?UCtnWFlHNkxJWkJhK0tacmdlMEZoTDBkMWNTMThQVXlKaDNqREQvZlYz?= =?iso-2022-jp?B?Mm8yRk52UDlMVnQxS1pTcDI3UFAyTzBDeGVkU0JBOXdhc1NTc2RQakJu?= =?iso-2022-jp?B?RGFqRGRzVGs5Qld4ZWxHNHBNSDNXK0NxOGdJOEg1YWFzS2Mvek1tMDFj?= =?iso-2022-jp?B?Mkw3MDdLM1ZCUUNBZWNXQUZ3T2VIc1ZnSmNJaWdTV2RtRENXZ3pNUXFF?= =?iso-2022-jp?B?aEJ6UjZ4WmVUMkk2U3BtVm4wSjJXai9BbzNpN2RtM2ZyNjJ0Z2x0cEdV?= =?iso-2022-jp?B?UUVCMVRSQ2dSUzNnbElkNFRtbTR5aWJaaTg3a1ArYWROMTFxMDVVTlUz?= =?iso-2022-jp?B?L25JV3pGVWIwbnVNWHAvRVVFdHB2MjJXdW03Um5rR0lSSERnTkpUYVg3?= =?iso-2022-jp?B?TEtVTWtLR2pwcFprSDBKd0tuNHJPU0Q2QlZxWUpoL3I4bTUwNHhIeU1U?= =?iso-2022-jp?B?YjJXRERNSUdmQ050Y1BpZGVHUk9ZcUI3eXJDdzFSalRFeDUxVVZra3Nw?= =?iso-2022-jp?B?eG83TVMxVnEwVkFBaURyK1ZEMmliVU93SHQ0bU1mUGhLU3hLaHNZcVhr?= =?iso-2022-jp?B?NHRndFVwcHI5ZFRqOHUvaU0yTC8waUtNc1N1Si9aQll1ckpEQnA3eEdr?= =?iso-2022-jp?B?L0xzNw==?= 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: afyOO1keYVqpIwwMND/SyeGCQ/TxEV0d8ZcZzm1P/2EyioRwcR6el6LIIyfbbv3ck49YOF+b7l8LCQ+JbREDsmEJ61zsVbMSKEAYwakD2xs6UBW4UYQAyfqVfkE/B8DzAyn7FGPqK3JinQCYJ6txoi/SubU8lDb0Ai+0c9AkqXwWjE8GBC6JqvW+QLyrx3f/QNqjSAp3MhTM4DgEClC0Dhcr/pZ+wxoo4TRDnYvRmssvG13NyHDsVgNMoW5mTFSY8jRGwpHnZAE+rLU41OlEjGpa5qxHD4gMZk91OfRjfFWysVbblTYMgo+ah9QmDKfRKzmLvE1liun7zpjkoHwZLSTyp5DmTFPn2tIWA8+1aCSshOjNiJiZbMcXgbP3zth3QZhWMSLL7qU0eecG7v2OQIYSQQxc3e+HuR7u3upeKWbPx5iMG2GdhTcJsf19rHWuQtgt03gfxcOBTFeWHgGY8qrc5uZp0Xco9sG6ccb40Af/8rpnQN4HognjJgWwoI4QmSmke2zZJOT3/RcUBp2Xt04B8ha6poqYWyemKrbWWEjK8Hx2HqtaLiwfyYbohUZ7p/3DFaCNoEuCUERyvRjMnpV4lkw+GHDiWaqJXnrmPIS6/1XJ0+u8NyA36chTnSBEBvBZabmWADDawz1mbNETSJcT+rZkSOYE6BsWtvKoMAKhHgK6knjCVPWh6Xgjh6nTgCYkn8+nTdyU9wWFnHzNIanC7dNcBVcTG2mgAnO0PUvdrijax96jHoSybW0zHzDlFQfyUqpmk74uC7FwFAm/e5dg/6P+HEze7Pw1wco5CMM= X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 506c0eca-54bb-41ed-d682-08dacc5abfd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2022 07:25:36.3815 (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: ZaFwpFIteKcB9Y+eapqjW1qEH4anY/bXltegfpwFUvgwGB6LUHRnjlkMNPss0YUDvi6iixqW/lRmV9K9Bc30hg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB9610 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tuesday, November 22, 2022 2:49 PM Hayato Kuroda (Fujitsu) >=20 > Dear Nathan, >=20 > > 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. >=20 > Thanks for updating! It becomes better. Further comments: >=20 > 01. AlterSubscription() >=20 > ``` > + LogicalRepWorkersWakeupAtCommit(subid); > + > ``` >=20 > Currently subids will be recorded even if the subscription is not modifie= d. > I think LogicalRepWorkersWakeupAtCommit() should be called inside the if > (update_tuple). I think an exception would be REFRESH PULLICATION in which case update_tupl= e is false, but it seems better to wake up apply worker in this case as well, because the apply worker is also responsible to start table sync workers fo= r newly subscribed tables(in process_syncing_tables()). Besides, it seems not a must to wake up apply worker for ALTER SKIP TRANSAC= TION, Although there might be no harm for waking up in this case. >=20 > 02. LogicalRepWorkersWakeupAtCommit() >=20 > ``` > + oldcxt =3D MemoryContextSwitchTo(TopTransactionContext); > + on_commit_wakeup_workers_subids =3D > lappend_oid(on_commit_wakeup_workers_subids, > + > subid); > ``` >=20 > If the subscription is altered twice in the same transaction, the same su= bid will > be recorded twice. > I'm not sure whether it may be caused some issued, but list_member_oid() = can > be used to avoid that. +1, list_append_unique_oid might be better. Best regards, Hou zj