Search Postgresql Archives

Re: Perceived weaknesses of postgres

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

 



Stephen Cook wrote:
Magnus Hagander wrote:
I would guess they're referring to the ability to "pin" a table into memory, so that it always stays in the cache regardless of what else the database is doing. There is a narrow use-case where this can be very useful, but it can also be a very dangerous tool (hint: if you pin a table that grows up to say 80-90% of your RAM size, your database will not be fast for anything else)

I know that MS removed this ability in SQL Server 2005 for pretty much this reason; it's usefulness was greatly outweighed by people screwing up their systems by not calculating things correctly.


What they removed was "dbcc pintable", which would specify that data pages for a table should be pinned in the general buffer cache as they are requested. This feature didn't allow you to divide up your buffer cache, and so this rather pointless feature went away in SQL Server 2005. A few large, active pinned tables is obviously going to really wreck performance for most databases.

What SQL Server never had is more like what you get with Sybase, where you can partition your buffer cache into different regions of whatever fraction of the overall buffer cache you wish. This is IMHO a far more useful implementation. You can specify which regions a particular (set of) tables should use. You can further specify different page sizes for each buffer (say 2k pages for the intensely oltp stuff, and 16k pages for the more olapy things). You don't end up trying to leave *every* page of a table in memory this way, since LRU (or whatever method) will still recycle pages as needed within a named cache. This was all there in version 11 of the product, which was the last one I ever worked with (and is very dated at this point). This feature never made it to SQL Server since Microsoft went off and did their own thing well before this.

It's more this Sybase-type implementation I assumed the original poster was asking about? You can do something kind of similar in MySQL with the MyISAM storage engine, but I've not heard of too many shops actually doing this (who knows). The MySQL manual seems to strongly recommend it, anyway.

Paul





---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

[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