Обсуждение: AW: AW: AW: AW: AW: WAL-based allocation of XIDs is ins ecur e

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

AW: AW: AW: AW: AW: WAL-based allocation of XIDs is ins ecur e

От
Zeugswetter Andreas SB
Дата:
> > Before commit or rollback the xlog is not flushed to disk, thus you can loose
> > those xlog entries, but the index page might already be on disk because of
> > LRU buffer reuse, no ?
> 
> No. Buffer page is written to disk *only after corresponding records are flushed
> to log* (WAL means Write-Ahead-Log - write log before modifying data pages).

You mean, that for each dirty buffer that is reused, the reusing backend fsyncs
the xlog before writing the buffer to disk ?

Andreas


Re: AW: AW: AW: AW: WAL-based allocation of XIDs is insecur e

От
"Vadim Mikheev"
Дата:
> > > Before commit or rollback the xlog is not flushed to disk, thus you can loose
> > > those xlog entries, but the index page might already be on disk because of
> > > LRU buffer reuse, no ?
> > 
> > No. Buffer page is written to disk *only after corresponding records are flushed
> > to log* (WAL means Write-Ahead-Log - write log before modifying data pages).
> 
> You mean, that for each dirty buffer that is reused, the reusing backend fsyncs
> the xlog before writing the buffer to disk ?

In short - yes.
To be accurate - XLogFlush is called to ensure that records reflecting buffer' modifications
are on disk. That's how it works everywhere. And that's why LRU is not good policy for
bufmgr anymore (we discussed this already).

Vadim