Re: 2nd Level Buffer Cache

Поиск
Список
Период
Сортировка
От Greg Stark
Тема Re: 2nd Level Buffer Cache
Дата
Msg-id AANLkTikc7vetPLSdQqhijgV=Fi_LGWHmL-JfaYetPDbN@mail.gmail.com
обсуждение исходный текст
Ответ на Re: 2nd Level Buffer Cache  (Merlin Moncure <mmoncure@gmail.com>)
Ответы Re: 2nd Level Buffer Cache  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-hackers
On Mon, Mar 21, 2011 at 3:54 PM, Merlin Moncure <mmoncure@gmail.com> wrote:
> Can't you make just one large mapping and lock it in 8k regions? I
> thought the problem with mmap was not being able to detect other
> processes (http://www.mail-archive.com/pgsql-general@postgresql.org/msg122301.html)
> compatibility issues (possibly obsolete), etc.

I was assuming that locking part of a mapping would force the kernel
to split the mapping. It has to record the locked state somewhere so
it needs a data structure that represents the size of the locked
section and that would, I assume, be the mapping.

It's possible the kernel would not in fact fall over too badly doing
this. At some point I'll go ahead and do experiments on it. It's a bit
fraught though as it the performance may depend on the memory
management features of the chipset.

That said, that's only part of the battle. On 32bit you can't map the
whole database as your database could easily be larger than your
address space. I have some ideas on how to tackle that but the
simplest test would be to just mmap 8kB chunks everywhere.

But it's worse than that. Since you're not responsible for flushing
blocks to disk any longer you need some way to *unlock* a block when
it's possible to be flushed. That means when you flush the xlog you
have to somehow find all the blocks that might no longer need to be
locked and atomically unlock them. That would require new
infrastructure we don't have though it might not be too hard.

What would be nice is a mlock_until() where you eventually issue a
call to tell the kernel what point in time you've reached and it
unlocks everything older than that time.


-- 
greg


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

Предыдущее
От: Yeb Havinga
Дата:
Сообщение: Re: Sync Rep and shutdown Re: Sync Rep v19
Следующее
От: Greg Stark
Дата:
Сообщение: Re: 2nd Level Buffer Cache