3

I am learning the data format of DBMS and found we have a term: page.

Pages are the fetched data in main memory from external storage (eg. a disk, SSD) and several pages would be "cached" firstly to the Low Level Cache, when these pages are acquired by a query.

That reminds me of the same term page used in operating systems and computer architecture. Some formal descriptions about this "paging" from Wiki are:

Paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves data from secondary storage in same-size blocks called pages. Paging is an important part of virtual memory implementations in modern operating systems, using secondary storage to let programs exceed the size of available physical memory.


So it comes to the first question:

  1. Does the term page carry the same meaning in DBMS and in OS?

    • If yes, can you explain question 2 a little bit?
    • If not, can you explain why? Do they have different way to be implemented?

A step more:

  1. In the lecture we learn the N-ary Storage Model (NSM or slotted pages) and PAX (Partition Attributes Across) refer to this paper from Prof. Ailamaki. Assume page has the same meaning in DBMS and OS, why do we specify the NSM and PAX only in DBMS? Can this page format be portable to OS? (About the paper will be helpful, that you just go quicklythrough the data layout and the figures.)

The question 2 is the main reason, that I raise question here and start to ask myself, why NSM, PAX pages are special for DBMS. This question is more general and not focused on any particular DBMS in mind.

5

Does the term page have the same meaning in DBMS and in OS?

Generically, yes. The term PAGE is a generic for the smallest allocate-able unit of space. In SQL Server, for example, pages are a fixed size and have historically been 4k and 8k, depending on version (not counting Large Pages which are virtual memory and not database structures) and in Windows pages can be a multitude of sizes depending on options and underlying hardware.

Assume page has the same meaning in DBMS and OS, why do we specify the NSM and PAX only in DBMS? Can this page format be portable to OS?

I didn't read the entire paper because it also overloads the same term. Note that the hardware and underlying OS may change what a PAGE size is but doesn't change the generic meaning. Its use is quite overloaded and TBH you can make whatever you want in your own OS.

This is a little too generic and high level to really "answer" per se, and the "answers" are going to be hardware and software dependent and specific. You might want to narrow your focus a bit and ask a much more pointed question as this is extremely wide IMHO.

Edit:

You also mention SSD's, which also have a unit of PAGE which depends on (sarcasm) shockingly enough the storage controller and firmware. Some SSD's use pages of 1MB or more, some smaller.

Normally when we're talking about "Low Level Cache" it's the data or code caches which are generally referred to as lines or segments and not pages.

Maybe an additional question. Where and how can I find the documentation or implementation of page size or page format from a SQL server? Any particular DBMS or SQL server will make me happy.

SQL Server documents the architecture here. This is fixed and cannot be changed.

Windows page size (not to be confused with a paging file) can be found by calling GetSystemInfo (Windows API) which will populate a _SYSTEM_INFO structure which has a member called dwPageSize that will tell you the current page size for the system - this should all still be 4k at the time of this writing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.