From: | "matsumura(dot)ryo(at)fujitsu(dot)com" <matsumura(dot)ryo(at)fujitsu(dot)com> |
---|---|
To: | 'Kyotaro Horiguchi' <horikyota(dot)ntt(at)gmail(dot)com> |
Cc: | "bossartn(at)amazon(dot)com" <bossartn(at)amazon(dot)com>, "masao(dot)fujii(at)gmail(dot)com" <masao(dot)fujii(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | RE: archive status ".ready" files may be created too early |
Date: | 2020-07-22 02:53:49 |
Message-ID: | OSAPR01MB50273079AB48BF5C8ADCED20E8790@OSAPR01MB5027.jpnprd01.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello,
> At Mon, 13 Jul 2020 01:57:36 +0000, "Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>" wrote in
> Am I missing something here?
I write more detail(*).
Record-A and Record-B are cross segment-border records.
Record-A spans segment X and X+1.
Record-B spans segment X+2 and X+3.
If both records have been inserted to WAL buffer, lastSegContRecStart/End points to Record-B
* If a writer flushes segment X and a part of X+1 but record-A is not flushed completely,
NotifyStableSegments() allows the writer to notify segment-X.
Then, Record-A may be invalidated by crash-recovery and overwritten by new WAL record.
The segment-X is not same as the archived one.
Regard
Ryo Matsumura
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2020-07-22 03:48:32 | Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions |
Previous Message | Kyotaro Horiguchi | 2020-07-22 02:37:07 | Re: Stale external URL in doc? |