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.96) (envelope-from ) id 1vzvV4-001Rnw-2m for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Mar 2026 11:43:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzvU4-002oql-0f for pgsql-hackers@arkaria.postgresql.org; Tue, 10 Mar 2026 11:42:44 +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.96) (envelope-from ) id 1vzvU3-002oqc-2q for pgsql-hackers@lists.postgresql.org; Tue, 10 Mar 2026 11:42:44 +0000 Received: from mail-dy1-x132b.google.com ([2607:f8b0:4864:20::132b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzvU1-00000001xds-3iir for pgsql-hackers@postgresql.org; Tue, 10 Mar 2026 11:42:43 +0000 Received: by mail-dy1-x132b.google.com with SMTP id 5a478bee46e88-2be1d9c356cso7655650eec.0 for ; Tue, 10 Mar 2026 04:42:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773142960; cv=none; d=google.com; s=arc-20240605; b=RNYZgTkY5baruhqBxqEBAwPPOSpj/m+rerW3B/OBjf9aCqgkUwLujIYgLADMRDusS6 cxKlYuv8GcJdVx+kpzWTy+mbhQXoCVdcZ3FzoWilZGf8tgjG9NwOWY1SQk72J3L/fvlZ FJwtDxHUTGTh6hooho19Ei6JDI+/VxpBpLr058lYmU2+JjJCbT2PLMQoAHzE4E82VZoA Ki0oIXd2P6/JgoTOTcRUHtEi/3UB9T09TMkllI1cCF7WYNHZxoX6thvFbDMC49xbJdmB XUE5yoroljrN3B8vk3vTQHq9zPpSBK9VZwJweaMZXN+9F+8NzMhNX9fqQEnyQaWXy6gi ClUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qkABUBZpbhUcoxv4Z8TtHji2+mVDkXgAdDdP5iDB55o=; fh=FitjzA2QUFW7WrmrQXHOjl4ZhMzqR+e4KkUuES41jYs=; b=dsgzEz4vW6HBo5QPPA63R31gNIzlQ13cDKwVfoprnfXHw2lDbyzvQwhMLKJR4IxnVb njEMgr9V4E28ox7n+9IN+mxJW4POioNHLkkAkhxYnD9LIuDO0Rmwvvflv0YXC9MWBt8h OzLoypbVTq0ZfX6fQDvKHB6B6ebK4GSU5t1jMIJ6y8EBIDe2ARn0xpzbjAP1ms1nKISd AsJ0zi1vH2MZsr4mbVeNjC7OWWtLLzoWxc+uIVI4mQiGstR+PxBnKiWINT6scHy4rXdj AG1jxsl7nng8ClURS4HLM90umcP9VXhWaDBa9RMrRfUM9r0TAuYi0qKL1mIzx1qwo/Ah Da6g==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773142960; x=1773747760; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qkABUBZpbhUcoxv4Z8TtHji2+mVDkXgAdDdP5iDB55o=; b=UUJyhhPSvE4XBsIe8ugZw1/thDrw75MhjeAZLB8uMxjWQK3m/HyJrBQO9XOf5e8IT8 MMcaB0VB1KG3D2XpdlmKVLjSSNRwDGtSNKHbEbLKIwzSTFXyuZ4fz4svxt7DL4IaRkRb Ps2LATnci0yu28T0FCE2ZtMpWuqyrtv9+8FkcwxzJqCTiAZyLv/x2QG96BLamSUgVPRK a6MNcZG0PaB6aKnPwSzKGRR68wNvuaoyslK0N3y3qkoMTk/mSmN5Teg08E/EUepLLKjI v3dahrrsG3yqUEgxzpEfxBYZnMVt+UVMU63FQFnmclzy5k2zTPz0RvsH7w/Mj8ghMXHr 6UQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773142960; x=1773747760; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=qkABUBZpbhUcoxv4Z8TtHji2+mVDkXgAdDdP5iDB55o=; b=oct1L4UlGwH7C0MOc5AckyzmLgH3LmVchs6IUkz+cVhpZsIDYuYXpsjotgnvyc/gvL RnqzmJFUE5RndgSPCs+ZAUXGSniPj9AkRdh0ceL+oFve4xINu90rlzneM52bSWpHY4cc zwoHDM9mqW0lGYhm52RdXAbCWPyesXjbGAmfhLbHVsM8dMkWWIAmpkh7nk0xWENpMQCb c5PS1ekvzTSLXTEQZSUkrFTpQ6yHHUb9uSf+y/wsGvEG35XBU89c/WIkIFar+CaenyOY tDjKpxddWkvqOVN+dNoOu4QfHX3K31QvhAO0NXTDUkmHjmsXb5bl3ytZZS2AprEnzLG6 KKsw== X-Forwarded-Encrypted: i=1; AJvYcCVW1L/7D4WqssI6fhjc9VyInA8re0BN7EflfHC1MfoqbM4RoYUjpM1GUwnMSahxlyLVMKuLhNHUz9//ny76@postgresql.org X-Gm-Message-State: AOJu0Yxcc80vvtVf5EaJsD0Gz7P/EjZaRaijoTXJn9cthB1Ko1bTHI7d BiNOew2syy7qqlBnhDnxN2uaYOtk8QiAelgoWOysPPyNSWCHhzBT12e1wPQ+PE31et6y9EWHvw7 Ufq/AjV2+7mtVFubZmHiBXQ26CwhfPi8= X-Gm-Gg: ATEYQzygP4Brnyh4hFpxbyeloom3LmHYPidrBiqQxXuGjpADsIjJLTp25vXOsO742eb faPmnM0DlESsypVe+2iOkFjO5knIs+EHay2ONPDicbKSrm3oMMuEKL4f0h8sjAZnGAb3hEoN22/ gxydRyDEVb0bjYNLCA8UbeRXqNjW6w1gNYlhlw8x4nsSnvZF5Bl7Iq0hWJoUr60pLA8N/RswNZB Sqe8iDmL8he1aBGeAePQ3BUj8z37KSh4yPxR0cZxrrhBOKMhR2b7TghbRI2Rz4GLJUApEGyYXqw gSpE6kM= X-Received: by 2002:a05:7300:d70c:b0:2b8:711:ae5c with SMTP id 5a478bee46e88-2be4de90a99mr5988007eec.7.1773142959612; Tue, 10 Mar 2026 04:42:39 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nazir Bilal Yavuz Date: Tue, 10 Mar 2026 14:42:28 +0300 X-Gm-Features: AaiRm528U6CH834-jYS2QRxNyQWby18WLHd7khxYEvZsjiI5DxWKag7_QyyO5oY Message-ID: Subject: Re: Speed up COPY FROM text/CSV parsing using SIMD To: Manni Wood Cc: Nathan Bossart , KAZAR Ayoub , Neil Conway , Andrew Dunstan , Shinya Kato , PostgreSQL-development Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Tue, 10 Mar 2026 at 05:30, Manni Wood wrote: > > Here are some benchmarks showing what performance will look like for users who continue to use default_toast_compression = pglz. > > all compiled by meson with debugoptimized (-g -O2) > > arm NARROW master without inline (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression = pglz > TXT : 10055.141000 ms > CSV : 10549.174500 ms > TXT with 1/3 escapes: 10213.864750 ms > CSV with 1/3 quotes: 12188.039000 ms > > arm NARROW master with inline with v11patch default_toast_compression = pglz > TXT : 10070.153750 ms -0.149304% regression > CSV : 10161.348750 ms 3.676361% improvement > TXT with 1/3 escapes: 10618.005000 ms -3.956781% regression > CSV with 1/3 quotes: 12279.366250 ms -0.749319% regression > > arm WIDE master without inline (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression = pglz > TXT : 11355.602750 ms > CSV : 13893.110500 ms > TXT with 1/3 escapes: 12872.690500 ms > CSV with 1/3 quotes: 16722.262500 ms > > arm WIDE master with inline with v11patch default_toast_compression = pglz > TXT : 9001.007250 ms 20.735099% improvement > CSV : 8988.679750 ms 35.301171% improvement > TXT with 1/3 escapes: 12191.137000 ms 5.294569% improvement > CSV with 1/3 quotes: 16297.541500 ms 2.539854% improvement > > > x86 NARROW master without inline (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression = pglz > TXT : 26243.084500 ms > CSV : 27719.564000 ms > TXT with 1/3 escapes: 29578.192750 ms > CSV with 1/3 quotes: 34467.571250 ms > > x86 NARROW master with inline with v11patch default_toast_compression = pglz > TXT : 26371.996750 ms -0.491224% regression > CSV : 26137.186500 ms 5.708522% improvement > TXT with 1/3 escapes: 28080.201000 ms 5.064514% improvement > CSV with 1/3 quotes: 32557.377500 ms 5.542003% improvement > > x86 WIDE master without inline (git revert dc592a41557b072178f1798700bf9c69cd8e4235) default_toast_compression = pglz > TXT : 28734.774750 ms > CSV : 35700.485000 ms > TXT with 1/3 escapes: 32376.878250 ms > CSV with 1/3 quotes: 47024.985750 ms > > x86 WIDE master with inline with v11patch default_toast_compression = pglz > TXT : 22753.755750 ms 20.814567% improvement > CSV : 22977.195500 ms 35.638982% improvement > TXT with 1/3 escapes: 29526.887000 ms 8.802551% improvement > CSV with 1/3 quotes: 40298.196750 ms 14.304712% improvement Thank you for the benchmark, results look nice! So, there is almost no regression for both pglz and lz4 toast compression modes. Best case is ~60% improvement for the lz4 and ~35% improvement for the pglz. -- Regards, Nazir Bilal Yavuz Microsoft