Re: Revisiting {CREATE INDEX, REINDEX} CONCURRENTLY improvements
Mihail Nikalayeu <michail.nikolaev@gmail.com>
From: Michail Nikolaev <michail.nikolaev@gmail.com>
To: Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andrey Borodin <amborodin86@gmail.com>,
Melanie Plageman <melanieplageman@gmail.com>
Date: 2025-01-30T01:00:00Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Revert changes to CONCURRENTLY that "sped up" Xmin advance
- e28bb8851969 15.0 cited
-
VACUUM: ignore indexing operations with CONCURRENTLY
- d9d076222f5b 14.0 cited
-
Avoid spurious waits in concurrent indexing
- c98763bf51bf 14.0 cited
Attachments
- v13-0001-Add-stress-tests-for-concurrent-index-operations.patch (application/octet-stream) patch v13-0001
- v13-0005-Add-STIR-Short-Term-Index-Replacement-access-met.patch (application/octet-stream) patch v13-0005
- v13-0003-Allow-snapshot-resets-during-parallel-concurrent.patch (application/octet-stream) patch v13-0003
- v13-0004-Allow-snapshot-resets-in-concurrent-unique-index.patch (application/octet-stream) patch v13-0004
- v13-0002-Allow-advancing-xmin-during-non-unique-non-paral.patch (application/octet-stream) patch v13-0002
- v13-0006-tuplestore-add-support-for-storing-Datum-values.patch (application/octet-stream) patch v13-0006
- v13-0007-Improve-CREATE-REINDEX-INDEX-CONCURRENTLY-using-.patch (application/octet-stream) patch v13-0007
- v13-0009-Remove-PROC_IN_SAFE_IC-optimization.patch (application/octet-stream) patch v13-0009
- v13-0008-Concurrently-built-index-validation-uses-fresh-s.patch (application/octet-stream) patch v13-0008
- v13-0010-Add-proper-handling-of-auxiliary-indexes-during-.patch (application/octet-stream) patch v13-0010
- v13-0011-Updates-index-insert-and-value-computation-logic.patch (application/octet-stream) patch v13-0011
- io2.png (image/png)
- local.png (image/png)
Hello, everyone! > It was a wrong assumption. It looks like it is happening because of prefetching. I'll try to add it in the validation phase. This is an updated patch set, now prefetching is implemented. Not validation works that way: 1) TIDs which are present in STIR auxiliary index but not present in target index are loaded into tuplestore in sorted way 2) Then tuples from tuplestore are fetched one by one, but with underlying prefetching of corresponding pages Benchmark setups are the same as in [0]. Results show it works really well (see attachments). I was unable to achieve consistent results for a few tests on the AWS (io2) environment (and it was costly :) ) So, my next plan is: 1) wait a little bit for some comments from someone who still watches that 1-year going mainly solo thread :) 2) prepare a fresh new letter with patches, explanation, benchmark results and so on. Best regards, Mikhail. [0]: https://www.postgresql.org/message-id/flat/CANtu0ojHAputNCH73TEYN_RUtjLGYsEyW1aSXmsXyvwf%3D3U4qQ%40mail.gmail.com#b18fb8efab086bc22af1cb015e187cb7 >