Skip to main content
Skip table of contents

Understanding Buffers

You are looking at an older version of the documentation. The latest version is found here.

Data Virtuality uses so-called buffers for storing data during internal operations. The buffers can be used for storing two types of data:

  • Temporary data needed for operations during query execution, for example, when the Data Virtuality Server is doing ORDER BY or GROUP BY operations;
  • Large data coming from data sources, for example, CLOBs, BLOBs, XML documents, etc. 

Buffers can reside in the main memory (outside Java Heap space) or on a disk. The data moving between memory and disk is transparent for the user and is automatically decided by the Data Virtuality Server, based on the size of data, resource needs of various queries running in parallel, and the amount of available RAM. The disk buffer size is set to 50Gb but can be reconfigured to have a larger value. For example, the below SQL statement increases the disk buffer size to 100Gb (please note that the Data Virtuality Server restart is required for the new setting to become effective):

SQL
CALL SYSADMIN.executeCli(script => '/subsystem=teiid/:write-attribute(name=buffer-service-max-buffer-space,value=102400)');;

The buffer usage overall and per query can be monitored using the performance monitoring tool, as described in one of the chapters below. 

The key to understanding the performance impact of buffer configuration is the following:

  1. In most cases, using buffers by queries is a consequence of not being able to push down the operations to the source. It makes sense to check if pushdown can be optimized by rewriting the query; however, in many cases, pushdown cannot be further optimized, and the use of buffers is legitimate. 
  2. In most cases, memory buffers operate much more quickly than disk buffers. The exact ratio may differ depending on the technology so SSD drives would be significantly quicker than HDDs. If the speed should be further optimized, adding RAM to the server can be an option to increase the performance.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.