Buffering Database Tables

Buffering a table enhances the performance when accessing the data records contained in it.

The table buffers reside locally on each application server in the system. Access to the data of buffered tables can thus take place directly from the buffer of the application server. The time-consuming process of accessing the database is thus avoided.

A buffered table is generally read on all application servers and held in the buffer there. If a program changes the data in the table on an application server, this is noted in the log table by the database interface. The buffers still have the old status on all the other application servers, so that the applications may read obsolete data. At fixed intervals, usually every 1-2 minutes, a Local Buffer Synchronization is executed. The log table is read and the buffer contents which were changed by the other servers are invalidated. In the next access, this data is read directly from the database and updated in the buffer.

Buffering is particularly important in client/server environments, as it takes considerably longer to access a table through the network than it does to access a table that is buffered locally. Depending on the network load, this factor can be between 10 and 100.

The difference in performance is somewhat less marked in central systems (systems with only one application server) than in local ones (systems with several application servers). However, even in central systems, a reduction in process changes and increased sophistication of the buffering over that provided by the database system have a noticeable effect on performance.

See also:

Synchronization of the Local Buffers

Which Tables should be Buffered?

How are the Table Buffers Implemented Technically?

Which Accesses Proceed Straight to the Database?

How can you Analyze the Buffer Quality?