Openedge DB Cache

Posted by rrajan on 09-Sep-2013 07:40

Hi Team,

We are currently working on an Mobile App which connects to a Progress 11.2 DB. When we are connecting to the DB and getting data for the first time tooks long and subsequent calls tooks very less time. I believe it is due to the DB Cache. What I cannot understand is each time we are making a new DB Connection to the Database so ideally it should take the same time when we make the webservice calls. I have a few questions on the DB Cache. If anyone can help me understand it would be helpful.

1) Is the DB Cache available across different progress sessions eventhough each session has made its own DB connection ?

2) Will the DB cache be available if we have a load balancer and the requests are distributed between 2 servers, say first request is server by 1st server and the 2nd request goes to second server do we cache in this case. I believe ideally we should not have the DB cache ?

3) How big is the DB cache and how long will the DB cache stays ?

4) Do we have any documentation around the Progress DB Cache which would help us to understand it better ?

Regards,

Ramalingam.V

All Replies

Posted by gus on 11-Sep-2013 08:59

When run in multi-user mode, the primary broker for the database creates the buffer cache in one or more shared memory segments. These segments are directly accessed by server processes that access the database on behalf of clients, by self-serving clients that contain the client and server code in the same process, and by various auxiliary processes and database utility programs. All of the aforementioned must be running on the same machine as the primary broker process.

You cannot have a load balancer distributing connections to two different database server processes running on different machines but serving the same database.

The database cache is sized by the value of the -B configuration parameter. It is created in memory when the database is started and deleted when the database is shut down.

Your observation that when you connect to the database and retrieve data it takes longer the first time than it typically will in subsequent retrievals is absolutely correct. This is exactly according to plan and how it has been deliberately designed to operate.

This thread is closed