On Mon, Jul 1, 2019 at 7:28 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > Even more interesting, the same para also exists verbatim in > v4r2's src/backend/access/nobtree/nobtpage.c, which is dated 1991-10-29 > in the same tarball. (If you're wondering, "nobtree" seems to stand > for "no-overwrite btree"; so I suppose it went the way of all flesh > when Stonebraker lost interest in write-once mass storage.) So presumably > this comment dates back to some common ancestor of the mainline btree code > and the no-overwrite code, which must have been even older than the 1991 > date.
"no-overwrite btree" is described here, if you're interested: https://pdfs.semanticscholar.org/a0de/438d5efd96e8af51bc7595aa1c30d0497a57.pdf This is a link to the B-Tree focused paper "An Index Implementation Supporting Fast Recovery for the POSTGRES Storage System". I found that the paper provided me with some interesting historic context. I am pretty sure that the authors were involved in early work on the Postgres B-Tree code. It references Lanin and Shasha, even though the nbtree code that is influenced by L&S first appears in the same 2003 commit of yours that I mentioned. > > I think that the whole sentence about "the standard class of race > > conditions" should go. There is no more dance. Nothing in > > _bt_getroot() is surprising to me. The other comments explain things > > comprehensively. > > +1 I'll take care of it soon. -- Peter Geoghegan