Search Postgresql Archives

Re: Multiple buffer cache?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/2/6 Bret S. Lambert <bret.lambert@xxxxxxxxx>:
> On Sat, Feb 06, 2010 at 02:44:32PM +0100, C?dric Villemain wrote:
>> 2010/2/6 Bret S. Lambert <bret.lambert@xxxxxxxxx>:
>> > 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@xxxxxxxxxxxxxx)
>> >> To make changes to your subscription:
>> >> http://www.postgresql.org/mailpref/pgsql-general
>> >
>> > --
>> > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
>> > To make changes to your subscription:
>> > http://www.postgresql.org/mailpref/pgsql-general
>> >
>>
>>
>>
>> --
>> C?dric Villemain
>



-- 
Cédric Villemain

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux