Last modified: 2016

Name: H5Pset_page_buffer_size

Signature:
herr_t H5Pset_page_buffer_size( hid_t fapl_id, size_t buf_size, unsigned min_meta_perc, unsigned min_raw_perc )

Purpose:
Sets the maximum size for the page buffer and the minimum percentage for metadata and raw data pages.

Description:

H5Pset_page_buffer_size sets buf_size, the maximum size in bytes of the page buffer. The default value is zero, meaning that page buffering is disabled. When a non-zero page buffer size is set, the library will enable page buffering if that size is larger or equal than a single page size if a paged file space strategy is enabled using the functions H5Pset_file_space_strategy() and H5Pset_file_space_page_size().

The page buffer layer captures all I/O requests before they are issued to the VFD and "caches" them in fixed sized pages. Once the total number of pages exceeds the page buffer size, the library evicts pages from the page buffer by writing them to the VFD. At file close, the page buffer is flushed writing all the pages to the file.

If a non-zero page buffer size is set, and the file space strategy is not set to paged or the page size for the file space strategy is larger than the page buffer size, the subsequent call to H5Fcreate() or H5Fopen() using the fapl_id will fail.

The function also allows setting the minimum percentage of pages for metadata and raw data to prevent a certain type of data to evict hot data of the other type.

Parameters:
hid_t fapl_id   IN: File access property list identifier
size_t buf_size   IN: Maximum size, in bytes, of the page buffer
unsigned min_meta_perc   IN: Minimum metadata percentage to keep in the page buffer before allowing pages containing metadata to be evicted (Default is 0)
unsigned min_raw_perc   IN: Minimum raw data percentage to keep in the page buffer before allowing pages containing raw data to be evicted (Default is 0)
Returns:
Returns a non-negative value if successful. Otherwise returns a negative value.

Fortran Interface:
None

See Also:
History:
Release     Change
1.10.1 C function introduced with this release.