Re: How does Postgres store a B-Tree on disk while using the OS file system? - Mailing list pgsql-general

From Ron
Subject Re: How does Postgres store a B-Tree on disk while using the OS file system?
Date
Msg-id 8e25aeed-b834-8e4e-1d11-2ea00b2d13cb@gmail.com
Whole thread Raw
In response to How does Postgres store a B-Tree on disk while using the OS file system?  (Siddharth Jain <siddhsql@gmail.com>)
List pgsql-general
On 3/6/23 18:24, Siddharth Jain wrote:
I am trying to sharpen my understanding of Postgres. As I understand, Postgres does not write directly to disk blocks. It uses the file system provided by the OS:
My question: How can it then store a B Tree on disk? I would think storing a B Tree requires storing disk offset addresses and so on (for a node to navigate to another etc.). For this, one would need to write directly to the disk using low-level disk access functions and not use file system API.

Disk offsets... file offsets... one is just a step up on the abstraction layer.

How can that be? The OS only knows about Logical Block Addresses, which are a huge list of block numbers (just like userland software sees files as long lists of bytes).  It hasn't see cylinders, heads and platters in almost FORTY (more, probably, for SCSI and mainframe systems) years.

--
Born in Arizona, moved to Babylonia.

pgsql-general by date:

Previous
From: Siddharth Jain
Date:
Subject: How does Postgres store a B-Tree on disk while using the OS file system?
Next
From: Christophe Pettus
Date:
Subject: Re: How does Postgres store a B-Tree on disk while using the OS file system?