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 1w5yHO-003oiG-1g for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 03:54:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w5yHM-007NWo-39 for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 03:54:37 +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.96) (envelope-from ) id 1w5yHM-007NWf-1s for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 03:54:37 +0000 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w5yHL-00000001FiM-19hx for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 03:54:36 +0000 Received: by mail-oo1-xc33.google.com with SMTP id 006d021491bc7-66f747175d8so1047586eaf.0 for ; Thu, 26 Mar 2026 20:54:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774583674; cv=none; d=google.com; s=arc-20240605; b=LeBVPQkQKWw34DhNMcvUpwHVAdXMi0axDQl9mV/tYhrm07wfDTsadbSPE3lmENty2Z Qtsf5nPPwaa9dLcvWlLUTm8zmokPEt2NKPPV7XJrxTwHJh1dwUC1z7TJjuhsXfUaT4sB io22Xmv2Woqdw3364tbycIxS6SEYc8Qt/i0Z56H7qYkbyDhTHBZnm8ilhhVq6r1il/Bj lt2a9n0yB1AXkPI4a9isFtXXD181SnTeBF3WRJC/ok5dunS9PfW3z/DF0ep9v2LGXM7H ihkSmepUYnZld8GFKxgtU/TWwr44VIT7JHsYkfIxZz6CIPSCjc4qe2fuH0Sded+punSJ cDig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=3/UqXlbIt1oBNLqC2opeu2c4KMJDW5X29BeJuQNbny0=; fh=C0mSBeo66Skm622R3Ol0u44TKcaEu0jQaPh32hSb4fM=; b=HLfpQ/ISfiHtvrPAwfuzrYEPV4AJCvbHDl7Hb35mO6XQ+1sEe3iCvAlb8zxCjRtQzs 2BmMp0mTTw2Ij3SNUNHckGF6ovFXAw1DHfYVBeT+rD1AB2CaQs6IfNL4sURxtNj12t4B W8boOVdT9APcr1gMDELj36S/UouhRfTAK7/BQ8vL2IrTaQLWLi7u9cxMhISuqyRVLCaX GKAk2NfxQtdpNVDaOxOcCg+rJKUKWsZkW6VYrT0KY26aYUzSbm9GE3WqChHzZWjhLabf 6Euaozjoo1nt8FRComaXxcBNY0OlJ/yg2YeBp9pJ+y2SNGbI5Q04+Rs8DvCEsjdcxnqb HV3g==; darn=lists.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=20251104; t=1774583674; x=1775188474; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=3/UqXlbIt1oBNLqC2opeu2c4KMJDW5X29BeJuQNbny0=; b=eyFSItXzathqK8ca3WYovAFg0LdVAcD5mxXxDuhAEC0RyhorXqfvJqcvZtKJvGg9OM N7J9ltAEyDJefMW5hdTAYuL0eZCHzT05xo8VAREWs2KBi6E7u1scjyM248kAmlZ695Gh 4l/5gga1a3RC1Ek8U+KG3cevyYVkYl0C4JFXDP+4NkK+86CF50uz9VzozbwKI/9WX6tL 1XkbqGjGdCY7yayAjajbN2jU568Whdr4/nxtGudl/5IP/5uIZMbxFEQykYqH+Re1wUx7 DXZUXq41GhI02oUqP5sN0PV1JYon91GfzkOY42YyrQTV3w7XxviOdtcgnLvzo/SGVfkO miEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774583674; x=1775188474; h=content-transfer-encoding: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=3/UqXlbIt1oBNLqC2opeu2c4KMJDW5X29BeJuQNbny0=; b=h0fHZrWNQ9YUSfeSeNRIhS5xgfxqjyUAtn7OyZtutIkIhe7T5uGd8qBY4J2Fev7llV mXX//zzOSMn+ySXb5GBuhY/K06ZaS4Itdw9DET5y/WLHg+C47uAiDFd/sg0NVh2H1TBK W0Xj6pGadzp8TaWHJI4rWKgIOjG7qlmyEQKkfwRQmeMPlVv8HVEgUnYj4o+WcAg+ZaAB YI3PElyv9dw0wgxMZW822itLHY++fyaNGEG9BU4uIOkB8BKB9UBndeQ/UOG56GQVVhBF CP8vKNBKCibf4JfOYfpMbsR/WtgOW297l/Wuj77/oNZ6IposalfoniFFjlkc/SgdQmqw +6jg== X-Forwarded-Encrypted: i=1; AJvYcCX4+dA8JGyGO6KY0QL7AKNi2kVm6toofISqRvitwjkM1QoRlP5WR0tVZIEvNvliXX+KGWaifK/JZtB9sZAC@lists.postgresql.org X-Gm-Message-State: AOJu0YxmtctaG2Y82TwGIANtPH/nyB0oxMhiruJRniweBMCJS/StzGyl 5Ksx8XVD3sHFOOvEH6wxXJ2GNN9jj96lLFBPv9x1OBXTWz2jWNOrMbUszX9C1QTDieb2Rf6GPqI 3uvCsfNmjj9x7lZRFDn7LohJdfu+mn2k= X-Gm-Gg: ATEYQzxWB0zdA368QM9lN/ops1xzXl4NYm38pgIk1y8x1SYU1y/7JFNxDyHvqZP87qY cd8/53+hWPbLDXqetL0sRz2plQ/ZSYVBfoF0cZN/uK4WoXmLTWXFBKQlbYHc1wsmZzszEyAdUte dkgV5ApXL59w41WhEfjafMm1433hMAEeHW56bXXicZBzXqMYtC7k0G8Ws2ZBnzub8si8H2WB5qy MhG+TcqF/Ze4kgixES7qv6cPGRmGzWnYHV2h2HeatItB5EAAj/xipjevA59BsqNnDIrron5d0ae +2f7sniP+JeUx1PLf+2o+QJzqpbqd0pWNo53c7iS X-Received: by 2002:a05:6820:811b:b0:67c:11cf:eb0e with SMTP id 006d021491bc7-67e185f816dmr524548eaf.7.1774583674179; Thu, 26 Mar 2026 20:54:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bharath Rupireddy Date: Thu, 26 Mar 2026 20:54:22 -0700 X-Gm-Features: AQROBzC0Te8Z6WOY2p1XITV-rm1w2XjrIUWV7ykXdTlAQQaic8_iOmSSTSxohlI Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Daniil Davydov <3danissimo@gmail.com>, Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Wed, Mar 25, 2026 at 3:43=E2=80=AFPM Masahiko Sawada wrote: > > Given that we have one and half weeks before the feature freeze, I > think it's better to complete the project first before waiting for > his/her comments next week. Even if we finish this feature with the > opt-out style, we can hear more opinions on it and change the default > behavior as the change would be privial. What do you think? > > I've squashed all patches except for the documentation patch as I > assume you're working on it. The attached fixup patch contains several > changes: using opt-out style, comment improvements, and fixing typos > etc. +1 for enabling this feature by default. When enough CPU is available, vacuuming multiple indexes of a table in parallel in autovacuum definitely speeds things up. This way we will also get field experience using this feature. Thank you for sending the latest patches. I quickly reviewed the v31 patches. Here are some comments. 1/ + {"autovacuum_parallel_workers", RELOPT_TYPE_INT, I haven't looked at the whole thread, but do we all think we need this as a relopt? IMHO, we can wait for field experience and introduce this later. I'm having a hard time finding a use-case where one wants to disable the indexes at the table level. If there was already an agreement, I agree to commit to that decision. 2/ + /* + * If 'true' then we are running parallel autovacuum. Otherwise, we are + * running parallel maintenence VACUUM. + */ + bool is_autovacuum; + The variable name looks a bit confusing. How about we rely on AmAutoVacuumWorkerProcess() and avoid the bool in shared memory? -- Bharath Rupireddy Amazon Web Services: https://aws.amazon.com