From: | Cédric Villemain <cedric(dot)villemain(dot)debian(at)gmail(dot)com> |
---|---|
To: | "Bret S(dot) Lambert" <bret(dot)lambert(at)gmail(dot)com> |
Cc: | Alexei Vladishev <alexei(dot)vladishev(at)zabbix(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Multiple buffer cache? |
Date: | 2010-02-06 16:25:54 |
Message-ID: | e94e14cd1002060825y60172149x6323b1aefd6cc1bb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
2010/2/6 Bret S. Lambert <bret(dot)lambert(at)gmail(dot)com>:
> On Sat, Feb 06, 2010 at 02:44:32PM +0100, C?dric Villemain wrote:
>> 2010/2/6 Bret S. Lambert <bret(dot)lambert(at)gmail(dot)com>:
>> > On Fri, Feb 05, 2010 at 11:41:13PM +0200, Alexei Vladishev wrote:
>> >> Greetings,
>> >>
>> >> Is there a way of configuring PostgreSQL so that one specific table would
>> >> use, say, 4GB of buffer cache while other tables would use the rest?
>> >>
>> >> I would like to keep the table and its indexes always in "hot"
>> >> state, so that
>> >> other queries won't pollute this part of the buffer cache. It would ensure
>> >> reliable performance and much less disk IOPS working with the table.
>> >
>> > Fiddling with the buffer cache like that would require some sort of
>> > OS support, if I'm not mistaken in what you're asking for.
>> >
>> > And then, even if the support is there, you'd need to outline exactly
>> > how you're planning on pushing this button.
>> >
>> > Specifically, what's your usage pattern that would make this a
>> > win for you?
>> >
>> > If the table and its indexes can already fit into the buffer cache,
>> > and it's as commonly accessed as you think it is, the OS should
>> > probably have it cached anyway.
>>
>> that's all true.
>>
>> I am working on pgfincore which allow in some way to prepare buffer cache.
>> You need pg > 8.4 and linux (probably working with bsd too)
>
> Why do something with a non-portable interface? Most OSes support
> coherently mmap(2)'ing disk blocks into memory; in fact, I'm somewhat
> taken aback that the postgres buffer cache isn't implemented in that
> manner, but I'm willing to give the devs credit for having not done
> so for good reasons.
currrently, pgfincore is implement via mmap'ing and mincore. This is
the mincore implementation which might differ.
In next release there will probably a system call 'fincore()' which is
probably going to be integrated in linux kernel.
Doing all of those in a portable way is not fully possible (thinks
windows), but it may be possible using #ifdef things to catch the good
system call for each OS (if possible/implemented).
>
>>
>> I don't consider it ready fo rproduction, but fine for debugging
>> things, if you reall care the buffer cache preload, tell me, I'll
>> stabilize the code in a shorter time ;)
>> http://villemain.org/projects/pgfincore
>>
>> >
>> >>
>> >> Is it possible?
>> >>
>> >> Thanks for any hints!
>> >>
>> >> Alexei
>> >>
>> >> --
>> >> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>> >> To make changes to your subscription:
>> >> http://www.postgresql.org/mailpref/pgsql-general
>> >
>> > --
>> > Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>> > To make changes to your subscription:
>> > http://www.postgresql.org/mailpref/pgsql-general
>> >
>>
>>
>>
>> --
>> C?dric Villemain
>
--
Cédric Villemain
From | Date | Subject | |
---|---|---|---|
Next Message | Cédric Villemain | 2010-02-06 16:29:52 | Re: Multiple buffer cache? |
Previous Message | BillR | 2010-02-06 15:56:10 | Re: Multiple buffer cache? |