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

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: How does Postgres store a B-Tree on disk while using the OS file system?
Date: 2023-03-07 00:49:14
Message-ID: 8e25aeed-b834-8e4e-1d11-2ea00b2d13cb@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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:
> https://dba.stackexchange.com/questions/80036/is-there-a-way-to-store-a-postgresql-database-directly-on-a-block-device-not-fi
> 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.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Christophe Pettus 2023-03-07 01:07:29 Re: How does Postgres store a B-Tree on disk while using the OS file system?
Previous Message Siddharth Jain 2023-03-07 00:24:56 How does Postgres store a B-Tree on disk while using the OS file system?