Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rp7LW-0058Y2-0A for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Mar 2024 14:00:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rp7LU-00FJxH-Dv for pgsql-hackers@arkaria.postgresql.org; Tue, 26 Mar 2024 14:00:08 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rp7LT-00FJvq-W7 for pgsql-hackers@lists.postgresql.org; Tue, 26 Mar 2024 14:00:08 +0000 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rp7LP-006XTZ-Vw for pgsql-hackers@postgresql.org; Tue, 26 Mar 2024 14:00:06 +0000 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-513e6777af4so10059191e87.2 for ; Tue, 26 Mar 2024 07:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711461602; x=1712066402; darn=postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=mozMsSmxs9q46xmSHWUogkTOnZggRSqFCD8l5FLjgy0=; b=JI6ke5mly70l1TiZmg02eEjTRLvu3M4OPr28EznKeXCWHAoqM8qmqtU/d6YozB3MGc 6DqP2OHZH7kGvC1ylakpqV5/Y8+HPH0f9oEJodjuZMEHrZ3u2jT3q591XkwBdRbMD0Li oQDI2bG5EKXTRdbGdjAQ/Bq4zMkuwx+Dq+W3yO21OC+GL0RLDH0cDbxyiNF9LO/RT91U tg9HdDBzVZJ0WJ7h/D0Yv7kKpS5aNsNipSCtUOYWA0ZRJpzlplB36hPJt+lv0vQqDP26 cY+7PR5oUgjrxqZXaFO9V2PeZtjZXiyaYGOCyutGdCxHl9UVB7kRGk/+9bo9t2Ka+a38 QFvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711461602; x=1712066402; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mozMsSmxs9q46xmSHWUogkTOnZggRSqFCD8l5FLjgy0=; b=nQNxwKMGcN5PRCJCpq5HWcluucL+mz32s4VrfclXd7qF2fJlP19rvsmF97aOdnx+Hs 54qTVf/qCsbo6tb+XMxqHfAzLiaNbwhJtb/uuhZ38YS7DyYCWLpPv17azHRrGHoMraIR i33isBDWEfeZWiAXze1JR3GnEJL2GEdFb96NmQgT4begP3VJktBmuLQOK1kDEaoIsvkL 0cBvQYymvaiPVSZbqzRQfp36+Q6hgv7zefdtStQt5L9v/NxBzyjAGvIazUcsUviT16vv PUJndxnOg5Sr9b/LWKwh47x8wtEoKacjaO6VWIGzAXbrRDJYYf8J1cgM5z8pR6l1tuBl k7AQ== X-Gm-Message-State: AOJu0YyEFynuBP3CbQ+NZrpIXlIFaCLmSILQCDQicEvXG91SoPKQAsuO 714A0VE6iDFrUGf3IpAcWR3YlfWYgUEDXvQGbuIGFTe/1X0d+pqquVqOboosQYs= X-Google-Smtp-Source: AGHT+IHdwcOlh4z5SNnmS23Qko3Pgr/HStiCvzsT69GFcVFEUGuKwZpC8ykbEgJqKUv4DlZKMUkzLw== X-Received: by 2002:a19:e01a:0:b0:513:ca40:fafc with SMTP id x26-20020a19e01a000000b00513ca40fafcmr8609299lfg.11.1711461601885; Tue, 26 Mar 2024 07:00:01 -0700 (PDT) Received: from [1.0.0.7] ([178.155.17.223]) by smtp.gmail.com with ESMTPSA id x9-20020a19f609000000b00515b1b2c17csm490478lfe.262.2024.03.26.07.00.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 Mar 2024 07:00:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------aWpiGBHdW30wwsFBq4WhjC1b" Message-ID: Date: Tue, 26 Mar 2024 17:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: Parallel Aggregates for string_agg and array_agg Content-Language: en-US To: David Rowley , Tom Lane Cc: PostgreSQL-development References: <1b6ee15c-c218-761e-0120-c1ed438e2db2@2ndquadrant.com> <657be73a-a21d-0ae1-5c62-870afbdfddd4@2ndquadrant.com> <20180326022647.GL24540@tamriel.snowman.net> <20180326132009.GN24540@tamriel.snowman.net> <6538.1522096067@sss.pgh.pa.us> <15683.1525208375@sss.pgh.pa.us> <2800168.1659485900@sss.pgh.pa.us> From: Alexander Lakhin In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------aWpiGBHdW30wwsFBq4WhjC1b Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello David, 23.01.2023 07:37, David Rowley wrote: > I've now pushed this. > I've discovered that the test query: -- Ensure parallel aggregation is actually being used. explain (costs off) select * from v_pagg_test order by y; added by 16fd03e95 fails sometimes. For instance: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=urutu&dt=2024-03-19%2021%3A04%3A05 --- /home/bf/bf-build/urutu/HEAD/pgsql/src/test/regress/expected/aggregates.out 2024-02-24 06:42:47.039073180 +0000 +++ /home/bf/bf-build/urutu/HEAD/pgsql.build/src/test/regress/results/aggregates.out 2024-03-19 22:24:18.155876135 +0000 @@ -1993,14 +1993,16 @@           Sort Key: pagg_test.y, (((unnest(regexp_split_to_array((string_agg((pagg_test.x)::text, ','::text)), ','::text))))::integer)           ->  Result                 ->  ProjectSet -                     ->  Finalize HashAggregate +                     ->  Finalize GroupAggregate ... https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=phycodurus&dt=2024-02-28%2007%3A38%3A27 https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=avocet&dt=2024-02-08%2008%3A47%3A45 I suspect that these failures caused by autovacuum. I could reproduce this plan change when running multiple tests in parallel, and also with the attached test patch applied (several sleeps are needed for autovacuum/relation_needs_vacanalyze() to get a non-zero mod_since_analyze value from pgstat): TEMP_CONFIG=/tmp/temp.config TESTS="test_setup create_index create_aggregate aggregates" make -s check-tests where /tmp/temp.config is: autovacuum_naptime = 1 log_autovacuum_min_duration = 0 log_min_messages = INFO log_min_error_statement = log log_statement = 'all' With EXPLAIN (VERBOSE), I see a slight change of the Seq Scan cost/rows estimate: ... ->  Parallel Seq Scan on public.pagg_test  (cost=0.00..48.99 rows=2599 width=8) vs .. ->  Parallel Seq Scan on public.pagg_test  (cost=0.00..48.00 rows=2500 width=8) (after automatic analyze of table "regression.public.pagg_test") Best regards, Alexander --------------aWpiGBHdW30wwsFBq4WhjC1b Content-Type: text/x-patch; charset=UTF-8; name="aggregates.patch" Content-Disposition: attachment; filename="aggregates.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVnYXRlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FnZ3JlZ2F0ZXMub3V0CmluZGV4IGQ1NGEy NTVlNTguLjNkZTk4YzkxNmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWdncmVnYXRlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hZ2dy ZWdhdGVzLm91dApAQCAtMTkzMSw2ICsxOTMxLDEyIEBAIHNlbGVjdCBzdHJpbmdfYWdnKHYs IGRlY29kZSgnZWUnLCAnaGV4JykpIGZyb20gYnl0ZWFfdGVzdF90YWJsZTsKIGRyb3AgdGFi bGUgYnl0ZWFfdGVzdF90YWJsZTsKIC0tIFRlc3QgcGFyYWxsZWwgc3RyaW5nX2FnZyBhbmQg YXJyYXlfYWdnCiBjcmVhdGUgdGFibGUgcGFnZ190ZXN0ICh4IGludCwgeSBpbnQpOworc2Vs ZWN0IHBnX3NsZWVwKDMpOworIHBnX3NsZWVwIAorLS0tLS0tLS0tLQorIAorKDEgcm93KQor CiBpbnNlcnQgaW50byBwYWdnX3Rlc3QKIHNlbGVjdCAoY2FzZSB4ICUgNCB3aGVuIDEgdGhl biBudWxsIGVsc2UgeCBlbmQpLCB4ICUgMTAKIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsNTAw MCkgeDsKQEAgLTE5NjcsNiArMTk3MywxMiBAQCBmcm9tICgKIAkpIGExCiApIGEyCiBncm91 cCBieSB5Oworc2VsZWN0IHBnX3NsZWVwKDMpOworIHBnX3NsZWVwIAorLS0tLS0tLS0tLQor IAorKDEgcm93KQorCiAtLSBFbnN1cmUgcmVzdWx0cyBhcmUgY29ycmVjdC4KIHNlbGVjdCAq IGZyb20gdl9wYWdnX3Rlc3Qgb3JkZXIgYnkgeTsKICB5IHwgdG1pbiB8IHRtYXggfCB0bmRp c3RpbmN0IHwgYm1pbiB8IGJtYXggfCBibmRpc3RpbmN0IHwgYW1pbiB8IGFtYXggfCBhbmRp c3RpbmN0IHwgYWFtaW4gfCBhYW1heCB8IGFhbmRpc3RpbmN0IApAQCAtMTk4Myw2ICsxOTk1 LDEyIEBAIHNlbGVjdCAqIGZyb20gdl9wYWdnX3Rlc3Qgb3JkZXIgYnkgeTsKICA5IHwgICAx OSB8IDQ5OTkgfCAgICAgICAgMjUwIHwgMTAxOSB8IDk5OSAgfCAgICAgICAgMjUwIHwgICAx OSB8IDQ5OTkgfCAgICAgICAgMjUwIHwgICAgMTkgfCAgNDk5OSB8ICAgICAgICAgMjUwCiAo MTAgcm93cykKIAorc2VsZWN0IHBnX3NsZWVwKDMpOworIHBnX3NsZWVwIAorLS0tLS0tLS0t LQorIAorKDEgcm93KQorCiAtLSBFbnN1cmUgcGFyYWxsZWwgYWdncmVnYXRpb24gaXMgYWN0 dWFsbHkgYmVpbmcgdXNlZC4KIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSB2 X3BhZ2dfdGVzdCBvcmRlciBieSB5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FnZ3JlZ2F0ZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvYWdncmVnYXRlcy5zcWwKaW5kZXggNDQxZTAxZDE1MC4uMjVkZDkw ZWM2NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWdncmVnYXRlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWdncmVnYXRlcy5zcWwKQEAgLTc1MCw2ICs3 NTAsNyBAQCBkcm9wIHRhYmxlIGJ5dGVhX3Rlc3RfdGFibGU7CiAKIC0tIFRlc3QgcGFyYWxs ZWwgc3RyaW5nX2FnZyBhbmQgYXJyYXlfYWdnCiBjcmVhdGUgdGFibGUgcGFnZ190ZXN0ICh4 IGludCwgeSBpbnQpOworc2VsZWN0IHBnX3NsZWVwKDMpOwogaW5zZXJ0IGludG8gcGFnZ190 ZXN0CiBzZWxlY3QgKGNhc2UgeCAlIDQgd2hlbiAxIHRoZW4gbnVsbCBlbHNlIHggZW5kKSwg eCAlIDEwCiBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUwMDApIHg7CkBAIC03ODksOSArNzkw LDExIEBAIGZyb20gKAogKSBhMgogZ3JvdXAgYnkgeTsKIAorc2VsZWN0IHBnX3NsZWVwKDMp OwogLS0gRW5zdXJlIHJlc3VsdHMgYXJlIGNvcnJlY3QuCiBzZWxlY3QgKiBmcm9tIHZfcGFn Z190ZXN0IG9yZGVyIGJ5IHk7CiAKK3NlbGVjdCBwZ19zbGVlcCgzKTsKIC0tIEVuc3VyZSBw YXJhbGxlbCBhZ2dyZWdhdGlvbiBpcyBhY3R1YWxseSBiZWluZyB1c2VkLgogZXhwbGFpbiAo Y29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHZfcGFnZ190ZXN0IG9yZGVyIGJ5IHk7CiAK --------------aWpiGBHdW30wwsFBq4WhjC1b--