Re: WIP: parallel GiST index builds
От | Tomas Vondra |
---|---|
Тема | Re: WIP: parallel GiST index builds |
Дата | |
Msg-id | 1623fcb5-8bcb-4e99-af99-45c76a3797e3@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: WIP: parallel GiST index builds ("Andrey M. Borodin" <x4mmm@yandex-team.ru>) |
Ответы |
Re: WIP: parallel GiST index builds
|
Список | pgsql-hackers |
On 7/30/24 13:31, Andrey M. Borodin wrote: > > >> On 30 Jul 2024, at 14:57, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote: >> >>> >>> How do we synchronize Shared Fake LSN with global XLogCtl->unloggedLSN? Just bump XLogCtl->unloggedLSN if necessary? >>> Perhaps, consider using GetFakeLSNForUnloggedRel() instead of shared counter? As long as we do not care about FakeLSN>RealLSN. >>> >> >> I'm confused. How is this related to unloggedLSN at all? > > Parallel build should work for both logged and unlogged indexes. Agreed, no argument here. > If we use fake LSN in shared memory, we have to make sure that FakeLSN < XLogCtl->unloggedLSN after build. > Either way we can just use XLogCtl->unloggedLSN instead of FakeLSN in shared memory. > Ah, right. For unlogged relations we won't invoke log_newpage_range(), so we'd end up with the bogus page LSNs ... > In other words I propose to use GetFakeLSNForUnloggedRel() instead of "pg_atomic_uint64 *fakelsn;”. > Interesting idea. IIRC you suggested this earlier, but I didn't realize it has the benefit of already using an atomic counter - which solves the "ugliness" of my patch. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: