PMEMPOOL_FEATURE_QUERY(3)

NAME

pmempool_feature_query(), pmempool_feature_enable(), pmempool_feature_disable() - toggle or query pool set features

SYNOPSIS

    #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);

DESCRIPTION

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.

COMPATIBILITY

Poolsets with features not defined in this document (e.g. enabled by the newer software version) are not supported.

DISCLAIMER

pmempool_feature_query(), pmempool_feature_enable() and pmempool_feature_disable() are not fail safe.

RETURN VALUE

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.

SEE ALSO

poolset(5) and <https://pmem.io>