herr_t H5Pset_page_buffer_size(
hid_t fapl_id,
size_t buf_size,
unsigned min_meta_perc,
unsigned min_raw_perc )
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.
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) |
Release | Change |
1.10.1 | C function introduced with this release. |