Обсуждение: [DOCS] Confused about a statement in WAL configs

Поиск
Список
Период
Сортировка

[DOCS] Confused about a statement in WAL configs

От
finzelj@gmail.com
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.6/static/wal-configuration.html
Description:

In this section:

"At checkpoint time, all dirty data pages are flushed to disk and a special
checkpoint record is written to the log file. (The change records were
previously flushed to the WAL files.)"

I am confused by what the part in parenthesis means by "previously".  This
may only reflect my ignorance, but I don't know if "previously" means "in
previous versions of Postgres" or "before the checkpoint" or something
else.

Mostly because of this, I don't understand what this statement means.  Thank
you.

Re: [DOCS] Confused about a statement in WAL configs

От
"David G. Johnston"
Дата:
On Mon, Jul 31, 2017 at 6:16 AM, <finzelj@gmail.com> wrote:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.6/static/wal-configuration.html
Description:

In this section:

&quot;At checkpoint time, all dirty data pages are flushed to disk and a special
checkpoint record is written to the log file. (The change records were
previously flushed to the WAL files.)&quot;

I am confused by what the part in parenthesis means by &quot;previously&quot;.  This
may only reflect my ignorance, but I don&#39;t know if &quot;previously&quot; means &quot;in
previous versions of Postgres&quot; or &quot;before the checkpoint&quot; or something
else.

Mostly because of this, I don&#39;t understand what this statement means.  Thank
you.

​"previously" in that sentence means "earlier in time".  The "WAL files" are written to during every COMMIT.  They constitute a journal of changes that affected the in-memory "pages" and made them "dirty".  During a checkpoint a marker entry is written that says a checkpoint has occurred and that every change noted in the WAL files written before the marker entry and now known to exist in the actual data files on disk.  Until that happens some of those change may only exist in memory (in the form of dirty data pages).

David J.​

Re: [DOCS] Confused about a statement in WAL configs

От
Jeremy Finzel
Дата:
On Mon, Jul 31, 2017 at 10:04 AM, David G. Johnston <david.g.johnston@gmail.com> wrote:
On Mon, Jul 31, 2017 at 6:16 AM, <finzelj@gmail.com> wrote:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/9.6/static/wal-configuration.html
Description:

In this section:

&quot;At checkpoint time, all dirty data pages are flushed to disk and a special
checkpoint record is written to the log file. (The change records were
previously flushed to the WAL files.)&quot;

I am confused by what the part in parenthesis means by &quot;previously&quot;.  This
may only reflect my ignorance, but I don&#39;t know if &quot;previously&quot; means &quot;in
previous versions of Postgres&quot; or &quot;before the checkpoint&quot; or something
else.

Mostly because of this, I don&#39;t understand what this statement means.  Thank
you.

​"previously" in that sentence means "earlier in time".  The "WAL files" are written to during every COMMIT.  They constitute a journal of changes that affected the in-memory "pages" and made them "dirty".  During a checkpoint a marker entry is written that says a checkpoint has occurred and that every change noted in the WAL files written before the marker entry and now known to exist in the actual data files on disk.

Forgive me, but I don't quite follow this clause at it's not a complete sentence: "every change noted in the WAL files written before the marker entry and now known to exist in the actual data files on disk".  Is there a typo here?
 
Until that happens some of those change may only exist in memory (in the form of dirty data pages).

David J.​

I *think* I follow now: before the checkpoint, the dirty data pages had already been written to the WAL files, but not necessarily flushed to disk.  The checkpoint flushes them all to disk as well.

If that is the case, I still think the wording is confusing and should be updated to say that ^^ more explicitly spelled out.  For example:

At checkpoint time, all dirty data pages are flushed to disk and a special
checkpoint record is written to the log file. (The change records were
previously flushed only to the WAL files, not necessarily to disk).

Again, if I understand rightly.  Thank you.

Re: [DOCS] Confused about a statement in WAL configs

От
"David G. Johnston"
Дата:
On Tue, Aug 1, 2017 at 7:23 AM, Jeremy Finzel <finzelj@gmail.com> wrote:

I *think* I follow now: before the checkpoint, the dirty data pages had already been written to the WAL files, but not necessarily flushed to disk.  The checkpoint flushes them all to disk as well.
 
​Yes, that it correct.

David J.​