Published on Wed, Aug 10, 2011
In my recent post on pgmemcache, there were couple of questions asked which were really interesting and made me to work on it. I should thank for it :)
Questions:
Answer:
pgmemcache(memcached) is not application transparent, you need to do changes in the application for pushing or retreiving the data from the cache.
EnterpriseDB, product PostgresPlus Advance Server includes a feature called Infinite Cache, which is based on production proven technology memcached the open source distributed object cache.
About EnterpriseDB, the Enterprise PostgreSQL Company, provides enterprise-class PostgreSQL products of the world’s most advanced open source database. The company’s Postgres Plus products are ideally suited for transaction-intensive applications requiring superior performance, massive scalability and compatibility with proprietary database products.
Overview
Above diagram helps to understand the architecture of pgmemcache vs infinite cache. In infinite cache, all the pages are first searched in shared_buffers and then in Infinite Cache. Synchronization between shared buffer cache and infinite cache makes application transparency, which is not the case with pgmemcache.
Infinite Cache, is faster and completely application transparent. No special code is needed from developers. Warms up your cache with multiple parallel processes and pre-loads cache at startup reducing warming time.
To avail infinite cache you have to download the PostgresPlus Advance
Server which is Oracle Compatible product bundled with Infinite Cache.
Download Link:
http://www.enterprisedb.com/downloads/postgres-postgresql-downloads
Implementation of Infinite cache is as simple as memcached, below link will help in setting up the infinite cache.
http://www.enterprisedb.com/docs/en/8.4/perf/Postgres_Plus_Advanced_Server_Performance_Guide-04.htm
Very informative discussion on PostgreSQL Community Forum:-
http://archives.postgresql.org/pgsql-performance/2011-07/msg00001.php
–Raghav