Re: making relfilenodes 56 bits
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Simon Riggs <simon.riggs@enterprisedb.com>
Cc: Andres Freund <andres@anarazel.de>, Dilip Kumar <dilipbalaut@gmail.com>, Heikki Linnakangas <hlinnaka@iki.fi>, Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-06-28T17:01:11Z
Lists: pgsql-hackers
On Tue, Jun 28, 2022 at 11:25 AM Robert Haas <robertmhaas@gmail.com> wrote: > But the primary problem we're trying to solve here is that right now > we sometimes reuse the same filename for a whole new file, and that > results in bugs that only manifest themselves in obscure > circumstances, e.g. see 4eb2176318d0561846c1f9fb3c68bede799d640f. > There are residual failure modes even now related to the "tombstone" > files that are created when you drop a relation: remove everything but > the first file from the main fork but then keep that file (only) > around until after the next checkpoint. OID wraparound is another > annoyance that has influenced the design of quite a bit of code over > the years and where we probably still have bugs. If we don't reuse > relfilenodes, we can avoid a lot of that pain. Combining the DB OID > and TS OID fields doesn't solve that problem. Oh wait, I'm being stupid. You were going to combine those fields but then also widen the relfilenode, so that would solve this problem after all. Oops, I'm dumb. I still think this is a lot more complicated though, to the point where I'm not sure we can really make it work at all. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
Fix typos in comments, code and documentation
- 33ab0a2a527e 16.0 cited
-
Increase width of RelFileNumbers from 32 bits to 56 bits.
- 05d4cbf9b6ba 16.0 landed
-
Move RelFileNumber declarations to common/relpath.h.
- 2f47715cc864 16.0 landed
-
Include RelFileLocator fields individually in BufferTag.
- 82ac34db2036 16.0 landed
-
Convert macros to static inline functions (buf_internals.h)
- 3ac88fddd92c 16.0 landed
-
Remove the restriction that the relmap must be 512 bytes.
- d8cd0c6c95c0 16.0 landed
-
Change internal RelFileNode references to RelFileNumber or RelFileLocator.
- b0a55e43299c 16.0 landed
-
Reorder subskiplsn in pg_subscription to avoid alignment issues.
- 79b716cfb7a1 15.0 cited
-
Fix DROP {DATABASE,TABLESPACE} on Windows.
- 4eb2176318d0 15.0 cited
-
Restructure smgr API as per recent proposal. smgr no longer depends on
- 87bd95638552 8.0.0 cited