Re: brininsert optimization opportunity
Tomas Vondra <tomas.vondra@enterprisedb.com>
From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Alexander Lakhin <exclusion@gmail.com>,
Soumyadeep Chakraborty <soumyadeep2007@gmail.com>,
Matthias van de Meent <boekewurm+postgres@gmail.com>
Cc: Alvaro Herrera <alvherre@alvh.no-ip.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>,
Ashwin Agrawal <ashwinstar@gmail.com>
Date: 2023-12-11T15:41:45Z
Lists: pgsql-hackers
On 12/11/23 16:00, Alexander Lakhin wrote: > Hello Tomas and Soumyadeep, > > 25.11.2023 23:06, Tomas Vondra wrote: >> I've done a bit more cleanup on the last version of the patch (renamed >> the fields to start with bis_ as agreed, rephrased the comments / docs / >> commit message a bit) and pushed. > > Please look at a query, which produces warnings similar to the ones > observed upthread: > CREATE TABLE t(a INT); > INSERT INTO t SELECT x FROM generate_series(1,10000) x; > CREATE INDEX idx ON t USING brin (a); > REINDEX index CONCURRENTLY idx; > > WARNING: resource was not closed: [1863] (rel=base/16384/16389, > blockNum=1, flags=0x93800000, refcount=1 1) > WARNING: resource was not closed: [1862] (rel=base/16384/16389, > blockNum=0, flags=0x93800000, refcount=1 1) > > The first bad commit for this anomaly is c1ec02be1. > Thanks for the report. I haven't investigated what the issue is, but it seems we fail to release the buffers in some situations - I'd bet we fail to call the cleanup callback in some place, or something like that. I'll take a look tomorrow. > May be you would also want to fix in passing some typos/inconsistencies > introduced with recent brin-related commits: > s/bs_blkno/bt_blkno/ > s/emptry/empty/ > s/firt/first/ > s/indexinsertcleanup/aminsertcleanup/ > s/ maxRange/ nextRange/ > s/paga /page / > Definitely. Thanks for noticing those! regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add missing index_insert_cleanup calls
- 41d2c6f952ed 17.0 landed
-
Fix a couple typos in BRIN code
- 95d14b7ae26d 17.0 landed
-
Check if ii_AmCache is NULL in aminsertcleanup
- a82ee7ef3aac 17.0 landed
-
Use fipshash in brin_multi test
- 86b64bafc19c 17.0 cited
-
Reuse BrinDesc and BrinRevmap in brininsert
- c1ec02be1d79 17.0 landed
-
Consider fillfactor when estimating relation size
- 29cf61ade3f2 17.0 cited
-
Postpone some stuff out of ExecInitModifyTable.
- c5b7ba4e67ae 14.0 cited