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 1p9m0r-0006nz-Jd for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Dec 2022 11:51:25 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p9m0o-0001jV-5W for pgsql-hackers@arkaria.postgresql.org; Mon, 26 Dec 2022 11:51:22 +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 1p9m0n-0001jM-Pc for pgsql-hackers@lists.postgresql.org; Mon, 26 Dec 2022 11:51:21 +0000 Received: from mail-io1-xd36.google.com ([2607:f8b0:4864:20::d36]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p9m0m-0000cQ-5Z for pgsql-hackers@lists.postgresql.org; Mon, 26 Dec 2022 11:51:21 +0000 Received: by mail-io1-xd36.google.com with SMTP id g20so5574163iob.2 for ; Mon, 26 Dec 2022 03:51:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=49wpAFK+DYhTIUCoeZ4NdAjlaqiweKAabJ5uS768+iY=; b=HyLSTIKneULrbbzi1pcz2l7PQGrVfxKAfwWgSn1WHrDIfpPl7ioJTxI99E/Gt2wPlW kfx0T23O+R+8+yTqO0CgPW/mD1mcTazbgk8Dp2xeD+OfGVUGpQ+34Mw+VYXIGjYWEXxf vPqWM9dc24aY0VXeqlzb2mq5tqlLJqI8Y15IE40xOCIhjuXXDhkr3LgcQzLiA2LE6EHE bfMyuwoHh8sAHSrmTQKQOY1yOeWeNkfuug9BS/4KCtdLbrdC9VGdGWZHRYOi8yzuCssw KnsxVAHGRsOa2w+D9Khlpag7KGCKfmAnJSXfQJ1WzKeWKMfT7yQ9O9KSzj6tdPp90vK8 13AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=49wpAFK+DYhTIUCoeZ4NdAjlaqiweKAabJ5uS768+iY=; b=MtGB6qS3SNIMcsO634Kg+/wwH3ebCwCy0ZgG3rP377liii+ZHFhSDRO82wWurTc7N2 HYk2S/QrNfPvL3SGQjry0/h5wKgc88Sh97/d04YdkOGOzzZFIosO6cXMLpu8MgRoX3nC vLsgKfWe3MFaR+wiP9ARtD40hX5B24m5SabW9goY2rYBz1aDXcj+N6lhjk4EWujDQpiA e4A9Jw/hMKwn7pcafw9rc5u/5PY/pFl+DNSDsPVqG7ARhx8eWnE26wNiz5nFnnyaLv/j YBOOqo8377MajzZKaCNeqxN2QGU3R1ak955M/Eeohxu0F8zzDsmplqrZUhG+nfkJBkUc Uhbw== X-Gm-Message-State: AFqh2korxpIuLv7hpysm2X0EqGW2qLgJ3tRaIGEA7VlW9sp0B/v9htT4 M3qVcUsEBe8tgZlxhhQRDAcTUadSBZN2+ynkhXQzlRWbt3Q= X-Google-Smtp-Source: AMrXdXvVxMDQZywUif2XEYGMSeKkcknQGNfzrwtMPoc/vgO5ByVSAUny2yj4DYBbMvz+BiMzNGGgPI4bdfR50EiOgdo= X-Received: by 2002:a02:ac02:0:b0:39d:7353:149b with SMTP id a2-20020a02ac02000000b0039d7353149bmr1410024jao.7.1672055477669; Mon, 26 Dec 2022 03:51:17 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Amit Kapila Date: Mon, 26 Dec 2022 17:21:05 +0530 Message-ID: Subject: Re: Perform streaming logical transactions by background workers and parallel apply To: "houzj.fnst@fujitsu.com" Cc: Peter Smith , Masahiko Sawada , "wangw.fnst@fujitsu.com" , Dilip Kumar , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000cacd5605f0b9c0c2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000cacd5605f0b9c0c2 Content-Type: text/plain; charset="UTF-8" On Mon, Dec 26, 2022 at 9:52 AM houzj.fnst@fujitsu.com wrote: > > On Friday, December 23, 2022 5:20 PM houzj.fnst@fujitsu.com wrote: > > Since the GUC used to force stream changes has been committed, I removed that > patch from the patch set here and rebased the testcases based on that commit. > Here is the rebased patch set. > Few comments on 0002 and 0001 patches ================================= 1. + if ($is_parallel) + { + $node_subscriber->append_conf('postgresql.conf', + "log_min_messages = debug1"); + $node_subscriber->reload; + } + + # Check the subscriber log from now on. + $offset = -s $node_subscriber->logfile; + + $in .= q{ + BEGIN; + INSERT INTO test_tab SELECT i, md5(i::text) FROM generate_series(3, 5000) s(i); How can we guarantee that reload would have taken place before this next test? I see that 020_archive_status.pl is executing a query to ensure the reload has been taken into consideration. Can we do the same? 2. It is not very clear whether converting 017_stream_ddl and 019_stream_subxact_ddl_abort adds much value. They seem to be mostly testing DDL/DML interaction of publisher side. We can probably check the code coverage by removing the parallel version for these two files and remove them unless it covers some extra code. If we decide to remove parallel version for these two files then we can probably add a comment atop these files indicating why we don't have a version that parallel option for these tests. 3. +# Drop the unique index on the subscriber, now it works. +$node_subscriber->safe_psql('postgres', "DROP INDEX idx_tab"); + +# Wait for this streaming transaction to be applied in the apply worker. $node_publisher->wait_for_catchup($appname); $result = - $node_subscriber->safe_psql('postgres', - "SELECT count(*), count(c), count(d = 999) FROM test_tab"); -is($result, qq(3334|3334|3334), 'check extra columns contain local defaults'); + $node_subscriber->safe_psql('postgres', "SELECT count(*) FROM test_tab_2"); +is($result, qq(5001), 'data replicated to subscriber after dropping index'); -# Test the streaming in binary mode +# Clean up test data from the environment. +$node_publisher->safe_psql('postgres', "TRUNCATE TABLE test_tab_2"); +$node_publisher->wait_for_catchup($appname); $node_subscriber->safe_psql('postgres', - "ALTER SUBSCRIPTION tap_sub SET (binary = on)"); + "CREATE UNIQUE INDEX idx_tab on test_tab_2(a)"); What is the need to first Drop the index and then recreate it after a few lines? 4. Attached, find some comment improvements atop v67-0002* patch. Similar comments need to be changed in other test files. 5. Attached, find some comment improvements atop v67-0001* patch. -- With Regards, Amit Kapila. --000000000000cacd5605f0b9c0c2 Content-Type: application/octet-stream; name="v67-0002-changes_amit_1.patch" Content-Disposition: attachment; filename="v67-0002-changes_amit_1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lc4ql0mf0 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxNV9zdHJlYW0ucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMTVfc3RyZWFtLnBsCmluZGV4IDdiYzM0MmQyMTEuLjIyMGFi MGMyNWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxNV9zdHJlYW0ucGwK KysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDE1X3N0cmVhbS5wbApAQCAtOCw4ICs4LDgg QEAgdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM7CiB1c2UgVGVzdDo6TW9yZTsKIAotIyBDaGVjayB0aGUgbG9nIHRoYXQgdGhlIHN0cmVh bWVkIHRyYW5zYWN0aW9uIHdhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Ci0jIHJlcG9ydGVkIGJ5 IHBhcmFsbGVsIGFwcGx5IHdvcmtlci4KKyMgQ2hlY2sgdGhhdCB0aGUgcGFyYWxsZWwgYXBwbHkg d29ya2VyIGhhcyBmaW5pc2hlZCBhcHBseWluZyB0aGUgc3RyZWFtaW5nCisjIHRyYW5zYWN0aW9u Lgogc3ViIGNoZWNrX3BhcmFsbGVsX2xvZwogewogCW15ICgkbm9kZV9zdWJzY3JpYmVyLCAkb2Zm c2V0LCAkaXNfcGFyYWxsZWwsICR0eXBlKSA9IEBfOwpAQCAtMjIsOSArMjIsNyBAQCBzdWIgY2hl Y2tfcGFyYWxsZWxfbG9nCiAJfQogfQogCi0jIEVuY2Fwc3VsYXRlIGFsbCB0aGUgY29tbW9uIHRl c3Qgc3RlcHMgd2hpY2ggYXJlIHJlbGF0ZWQgdG8gInN0cmVhbWluZyIKLSMgcGFyYW1ldGVyIHNv IHRoZSBzYW1lIGNvZGUgY2FuIGJlIHJ1biBib3RoIGZvciB0aGUgc3RyZWFtaW5nPW9uIGFuZAot IyBzdHJlYW1pbmc9cGFyYWxsZWwgY2FzZXMuCisjIENvbW1vbiB0ZXN0IHN0ZXBzIGZvciBib3Ro IHRoZSBzdHJlYW1pbmc9b24gYW5kIHN0cmVhbWluZz1wYXJhbGxlbCBjYXNlcy4KIHN1YiB0ZXN0 X3N0cmVhbWluZwogewogCW15ICgkbm9kZV9wdWJsaXNoZXIsICRub2RlX3N1YnNjcmliZXIsICRh cHBuYW1lLCAkaXNfcGFyYWxsZWwpID0gQF87CkBAIC00MCwxMCArMzgsOCBAQCBzdWIgdGVzdF9z dHJlYW1pbmcKIAlteSAkaCA9ICRub2RlX3B1Ymxpc2hlci0+YmFja2dyb3VuZF9wc3FsKCdwb3N0 Z3JlcycsIFwkaW4sIFwkb3V0LCAkdGltZXIsCiAJCW9uX2Vycm9yX3N0b3AgPT4gMCk7CiAKLQkj IElmICJzdHJlYW1pbmciIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgYXMgInBhcmFsbGVsIiwgd2Ug bmVlZCB0byBjaGVjawotCSMgdGhhdCBzdHJlYW1lZCB0cmFuc2FjdGlvbiB3YXMgYXBwbGllZCB1 c2luZyBhIHBhcmFsbGVsIGFwcGx5IHdvcmtlci4KLQkjIFdlIGhhdmUgdG8gbG9vayBmb3IgdGhl IERFQlVHMSBsb2cgbWVzc2FnZXMgYWJvdXQgdGhhdCwgc28gYnVtcCB1cCB0aGUKLQkjIGxvZyB2 ZXJib3NpdHkuCisJIyBXZSBuZWVkIHRvIGNoZWNrIERFQlVHIGxvZ3MgdG8gZW5zdXJlIHRoYXQg dGhlIHBhcmFsbGVsIGFwcGx5IHdvcmtlciBoYXMKKwkjIGFwcGxpZWQgdGhlIHRyYW5zYWN0aW9u LiBTbywgYnVtcCB1cCB0aGUgbG9nIHZlcmJvc2l0eS4KIAlpZiAoJGlzX3BhcmFsbGVsKQogCXsK IAkJJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCkBAIC0y MjIsNiArMjE4LDggQEAgJG5vZGVfcHVibGlzaGVyLT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3Jl cycsCiAKIHRlc3Rfc3RyZWFtaW5nKCRub2RlX3B1Ymxpc2hlciwgJG5vZGVfc3Vic2NyaWJlciwg JGFwcG5hbWUsIDEpOwogCisjIFRlc3QgdGhhdCB0aGUgZGVhZGxvY2sgaXMgZGV0ZWN0ZWQgYW1v bmcgbGVhZGVyIGFuZCBwYXJhbGxlbCBhcHBseSB3b3JrZXJzLgorCiAkbm9kZV9zdWJzY3JpYmVy LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgImxvZ19taW5fbWVzc2FnZXMgPSBkZWJ1 ZzEiKTsKICRub2RlX3N1YnNjcmliZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAi ZGVhZGxvY2tfdGltZW91dCA9IDFtcyIpOwogJG5vZGVfc3Vic2NyaWJlci0+cmVsb2FkOwo= --000000000000cacd5605f0b9c0c2 Content-Type: application/octet-stream; name="v67-0001-changes_amit_1.patch" Content-Disposition: attachment; filename="v67-0001-changes_amit_1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lc4ql5mp1 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxl bHdvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVs d29ya2VyLmMKaW5kZXggZjhhMGJiNDYyYS4uMjA3MWZjYTAxYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKQEAgLTQ4 NiwxMCArNDg2LDEwIEBAIHBhX2FsbG9jYXRlX3dvcmtlcihUcmFuc2FjdGlvbklkIHhpZCkKIAl9 CiAKIAkvKgotCSAqIEl0J3MgbmVjZXNzYXJ5IHRvIHJlcmVhZCB0aGUgc3Vic2NyaXB0aW9uIGlu Zm9ybWF0aW9uIGJlZm9yZSBhc3NpZ25pbmcKLQkgKiB0aGUgdHJhbnNhY3Rpb24gdG8gYSBwYXJh bGxlbCBhcHBseSB3b3JrZXIuIE90aGVyd2lzZSwgdGhlIGxlYWRlciBtYXkKLQkgKiBub3QgYmUg YWJsZSB0byByZXJlYWQgdGhlIHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiBpZiBzdHJlYW1pbmcK LQkgKiB0cmFuc2FjdGlvbnMga2VlcCBjb21pbmcgYW5kIGFyZSBoYW5kbGVkIGJ5IHBhcmFsbGVs IGFwcGx5IHdvcmtlcnMuCisJICogSXQgaXMgZ29vZCB0byBjaGVjayBmb3IgYW55IGNoYW5nZSBp biB0aGUgc3Vic2NyaXB0aW9uIHBhcmFtZXRlciB0bworCSAqIGF2b2lkIHRoZSBjYXNlIHdoZXJl IGZvciBhIHZlcnkgbG9uZyB0aW1lIHRoZSBjaGFuZ2UgZG9lc24ndCBnZXQKKwkgKiByZWZsZWN0 ZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHRoZXJlIGlzIGEgY29uc3RhbnQgZmxvdyBvZiBzdHJl YW1pbmcKKwkgKiB0cmFuc2FjdGlvbnMgdGhhdCBhcmUgaGFuZGxlZCBieSBwYXJhbGxlbCBhcHBs eSB3b3JrZXJzLgogCSAqLwogCW1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24oKTsKIAo= --000000000000cacd5605f0b9c0c2--