Re: POC and rebased patch for CSN based snapshots

Поиск
Список
Период
Сортировка
От Andrey V. Lepikhov
Тема Re: POC and rebased patch for CSN based snapshots
Дата
Msg-id 7106cb92-c69d-e206-5b1e-b7423380a996@postgrespro.ru
обсуждение исходный текст
Ответ на Re: POC and rebased patch for CSN based snapshots  ("movead.li@highgo.ca" <movead.li@highgo.ca>)
Ответы Re: POC and rebased patch for CSN based snapshots  (Movead Li <movead.li@highgo.ca>)
Список pgsql-hackers
On 6/12/20 2:41 PM, movead.li@highgo.ca wrote:
> Hello hackers,
> 
> Currently, I do some changes based on the last version:
> 1. Catch up to the current  commit (c2bd1fec32ab54).
> 2. Add regression and document.
> 3. Add support to switch from xid-base snapshot to csn-base snapshot,
> and the same with standby side.

Some remarks on your patch:
1. The variable last_max_csn can be an atomic variable.
2. GenerateCSN() routine: in the case than csn < csnState->last_max_csn 
This is the case when someone changed the value of the system clock. I 
think it is needed to write a WARNING to the log file. (May be we can do 
synchronization with a time server.
3. That about global snapshot xmin? In the pgpro version of the patch we 
had GlobalSnapshotMapXmin() routine to maintain circular buffer of 
oldestXmins for several seconds in past. This buffer allows to shift 
oldestXmin in the past when backend is importing global transaction. 
Otherwise old versions of tuples that were needed for this transaction 
can be recycled by other processes (vacuum, HOT, etc).
How do you implement protection from local pruning? I saw 
SNAP_DESYNC_COMPLAIN, but it is not used anywhere.
4. The current version of the patch is not applied clearly with current 
master.

-- 
regards,
Andrey Lepikhov
Postgres Professional



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Kyotaro Horiguchi
Дата:
Сообщение: Re: [Bug fix]There is the case archive_timeout parameter isignored after recovery works.
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: pg_bsd_indent compiles bytecode