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 1u1QSm-002FKA-T2 for pgsql-hackers@arkaria.postgresql.org; Sun, 06 Apr 2025 13:55:05 +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 1u1QSl-00EFFG-Bm for pgsql-hackers@arkaria.postgresql.org; Sun, 06 Apr 2025 13:55:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u1QSl-00EFF0-0J for pgsql-hackers@lists.postgresql.org; Sun, 06 Apr 2025 13:55:03 +0000 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u1QSi-003jOx-3D for pgsql-hackers@postgresql.org; Sun, 06 Apr 2025 13:55:02 +0000 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-736b0c68092so2683582b3a.0 for ; Sun, 06 Apr 2025 06:55:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743947699; x=1744552499; darn=postgresql.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=vvTFXPAIZ7qDA4y+kdJZrkQ93nUaxP5KT4SEAs4XZ9w=; b=nVTKVvt9HbkWbOXcvQ+9JLuvi6rYx3pNPXdyuC+FX/Z3dW7Bve53Zscm5ZU3M2A7yg nhRo1rfI2Em2NjP5bQYHgEALIwPUoLP/e3ENdyEJqIqxpvTYh2owPJT/MCu0U/Unvuky ZQ5rci8bQLv1f3IsLbXrWqbULmmD6hUE3GcGo15gIUaZDUFmgOyaT6dDC8wJMvChaUDC CRV+um4BBNrUPV6UsB9LOQ/UM7Blc4IZl2+xwyB2NYxIQN196LbT6qGzvII3xG2nM6/R Iip9t16eIvsh+/FqcLMRFXEtDaTr0XB6+2i9q8hYMcEgDAl5bj5ceo5mjqyHI46AlU9s 5ACw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743947699; x=1744552499; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vvTFXPAIZ7qDA4y+kdJZrkQ93nUaxP5KT4SEAs4XZ9w=; b=C9iDZKJ4XLEMwsDoBzLztdoQ5n5lZ3PvoRmvuxxxiPeF/18imdjT6IS8ALSQ1X3aad NEi9K9KYyQVkXaBuZy4EOIiWr5ROULdTsvsZsp94B2O3K5ZZoH31n/ZR/SquAZzKv4sA 0PFLtfpCbBmYhKZ5/HR3SUzk1ukFnMxzDg1azJd3bqdTfxoIrVcjJWXD3Yq5eR2oMfDk D09+9Oujrp1xdAm6Nqr/hTv6dU8zirUdITAnapRgDJw9v4DsfpbGtBANoVgR79aZhsMQ jL1qX3Yupy1SQkuFw/voe8KhYxjdt3Zfw5Y1kV4/tNnADEOWDYpSmc3p9p9AnZTSABi7 WMZQ== X-Forwarded-Encrypted: i=1; AJvYcCUjM8X2ljDsmt6UxxIv/moSIO9P1vZOw5gmPBHo/Bl50LqpN2qvOn9qB8SvsJzd7/I3vzXcyHjzSpj8MZdv@postgresql.org X-Gm-Message-State: AOJu0YwLMy+G2W8JMOT5zxVKqzvMSbjkALSw/54KPmDdECyA43WayjG2 XLwYQFDEYvbDQfYhS+zJXZzwKVvlfYA5gWyl5P785UBZWzJ88tWh X-Gm-Gg: ASbGncs0mlIJqjS3VYc2ZUp7ocfvjRsmwmUwKPOREAbi4jffPPHX0M60Y1qLuJAecfX 0KXdC+F52LRsE8/J1He+SN7d3EaG7N4/gBdS6JQTv8pO2a13jM64jeN0SH3h+HEaug6u7LEzd+a T5tbzo4B8M0jdFw13UhE7XyjY4RgftoQf8+SSl7Yw3P2uBBjLmHtuf3SlTPajF+vnNFkEZlzSrb /AUwnft2M670t4RqYw/LSLfAJ5DgI3xZWOX4Wo2HGOpbSAIf8kgMokAj0FMhEAsHe3aSfJWxMo8 6+U6sul0KHpkKEXYBArRtip48Q+ggp6MGJy0pZv4uqbErcsXgNel6u88AKMcYW9Ug5771QZAjwC 8aIhLwDDphpXkPIO+CIP5tTPgirW7KiXI0M8enrrOohVvP6BtfDQ= X-Google-Smtp-Source: AGHT+IEfPH+cIKlS85I6F60kM1K02T9Zpt/1JDmA/U1z7t0TzFk7WpeegloQQ98+FV/Keb6WgH7DUw== X-Received: by 2002:a05:6a00:1411:b0:730:927c:d451 with SMTP id d2e1a72fcca58-739e4c0ccc3mr13631082b3a.20.1743947698760; Sun, 06 Apr 2025 06:54:58 -0700 (PDT) Received: from smtpclient.apple (n058152022152.netvigator.com. [58.152.22.152]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-739d9806438sm6714532b3a.79.2025.04.06.06.54.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 06 Apr 2025 06:54:57 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Subject: Re: Introduce new multi insert Table AM and improve performance of various SQL commands with it for Heap AM From: Jingtang Zhang In-Reply-To: Date: Sun, 6 Apr 2025 21:54:44 +0800 Cc: pgsql-hackers@lists.postgresql.org, PostgreSQL-development , Bharath Rupireddy Content-Transfer-Encoding: quoted-printable Message-Id: <5EAAF124-98C1-425A-ACEC-131503F4070F@gmail.com> References: <20230603223824.o7iyochli2dwwi7k@alap3.anarazel.de> <6be6f58815dc0844fbe058edf56b4e735a6efc1c.camel@j-davis.com> <2280bf7241119bb88cbe0fe5eb36490cbd04c0c0.camel@j-davis.com> <12f1a2d8dd3b6305c0354f1c701f44b7be5e54eb.camel@j-davis.com> <8633171cb034aafc260fdf37df04b6c779aa1e2f.camel@j-davis.com> <229c4f7219ed164088dadc935df21e1cf125e191.camel@j-davis.com> <23a29125a2d07f96d49f97c31fcdb09a7f0ff6c1.camel@j-davis.com> <9F9326B4-8AD9-4858-B1C1-559FC64E6E93@gmail.com> To: Daniil Davydov <3danissimo@gmail.com> X-Mailer: Apple Mail (2.3826.400.131.1.6) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, Daniil Davydov. Thanks for sharing your patch! It was quite a while since I last looked at the patch. I've tested it = again, and still get regression on patched version where a table has many = columns. And it is totally CPU-bounded on tts_virtual_copyslot. Unpatched version: 1 col: Time: 8909.714 ms (00:08.910) Time: 8803.579 ms (00:08.804) Time: 8600.415 ms (00:08.600) 32 cols: Time: 12911.699 ms (00:12.912) Time: 13543.491 ms (00:13.543) Time: 13325.368 ms (00:13.325) Patched version: 1 col: Time: 3532.841 ms (00:03.533) Time: 3598.223 ms (00:03.598) Time: 3515.858 ms (00:03.516) 32 cols: Time: 35647.724 ms (00:35.648) Time: 35596.233 ms (00:35.596) Time: 35669.106 ms (00:35.669) I've tested your patch with tuplestore and found the regression does not = exist anymore, but I haven't look deep inside it. Patched version (with tuplestore): 1 col: Time: 3500.502 ms (00:03.501) Time: 3486.886 ms (00:03.487) Time: 3514.233 ms (00:03.514) 32 cols: Time: 10375.391 ms (00:10.375) Time: 10248.256 ms (00:10.248) Time: 10248.289 ms (00:10.248) It seems to be a good idea if there is no other issue with your patch. -- Regards, Jingtang