|PMEMPOOL_FEATURE_QUERY(3)||PMDK Programmer's Manual||PMEMPOOL_FEATURE_QUERY(3)|
pmempool_feature_query(), pmempool_feature_enable(), pmempool_feature_disable() - toggle or query pool set features
#include <libpmempool.h> int pmempool_feature_query(const char *path, enum pmempool_feature feature, unsigned flags); int pmempool_feature_enable(const char *path, enum pmempool_feature feature, unsigned flags); int pmempool_feature_disable(const char *path, enum pmempool_feature feature, unsigned flags);
The feature argument accepts following values:
- PMEMPOOL_FEAT_SINGLEHDR - only the first part in each replica contains the pool part internal metadata. This value can be used only with pmempool_feature_query(). It can not be enabled or disabled. For details see poolset(5).
- PMEMPOOL_FEAT_CKSUM_2K - only the first 2KiB of pool part internal metadata is checksummed. Other features may depend on this one to store additional metadata in otherwise unused second 2KiB part of a header. When PMEMPOOL_FEAT_CKSUM_2K is disabled whole 4KiB is checksummed.
- PMEMPOOL_FEAT_SHUTDOWN_STATE - enables additional check performed during pool open which verifies pool consistency in the presence of dirty shutdown. PMEMPOOL_FEAT_CKSUM_2K has to be enabled prior to PMEMPOOL_FEAT_SHUTDOWN_STATE otherwise enabling PMEMPOOL_FEAT_SHUTDOWN_STATE will fail.
- PMEMPOOL_FEAT_CHECK_BAD_BLOCKS - enables checking bad blocks performed during opening a pool and fixing bad blocks performed by pmempool-sync during syncing a pool. For details see pmempool-feature(1).
The pmempool_feature_query() function checks state of feature in the pool set pointed by path.
The pmempool_feature_enable() function enables feature in the pool set pointed by path.
The pmempool_feature_disable() function disables feature in the pool set pointed by path.
Poolsets with features not defined in this document (e.g. enabled by the newer software version) are not supported.
pmempool_feature_query(), pmempool_feature_enable() and pmempool_feature_disable() are not fail safe.
On success, pmempool_feature_query() returns 0 if feature is disabled or 1 if it is enabled. On error, it returns -1 and sets errno accordingly.
On success, pmempool_feature_enable() returns 0. On error, it returns -1 and sets errno accordingly.
On success, pmempool_feature_disable() returns 0. On error, it returns -1 and sets errno accordingly.
If path points poolset with remote replica errno is set to EINVAL and function returns -1.
If non zero flags are provided errno is set to EINVAL and function returns -1.
|2022-08-25||PMDK - pmempool API version 1.3|