pmemlog API version 1.1

The PMDK repository on GitHub is the ultimate source of information on PMDK from release 2.0! For all questions and to submit eventual issues please follow to that repository. The PMDK documentation collected here should be valid up to the 1.13.1 release but is maintained only on a best-effort basis and may not reflect the latest state of the art.

comment: <> (SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT) comment: <> (LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,) comment: <> (DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY) comment: <> (THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT) comment: <> ((INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE) comment: <> (OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.)

NAME
SYNOPSIS
DESCRIPTION
CTL NAMESPACE
CTL EXTERNAL CONFIGURATION
SEE ALSO

NAME

pmemlog_ctl_get(), pmemlog_ctl_set(), pmemlog_ctl_exec()

  • Query and modify libpmemlog internal behavior (EXPERIMENTAL)

SYNOPSIS

#include <libpmemlog.h>

int pmemlog_ctl_get(PMEMlogpool *plp, const char *name, void *arg); (EXPERIMENTAL)
int pmemlog_ctl_set(PMEMlogpool *plp, const char *name, void *arg); (EXPERIMENTAL)
int pmemlog_ctl_exec(PMEMlogpool *plp, const char *name, void *arg); (EXPERIMENTAL)

DESCRIPTION

The pmemlog_ctl_get(), pmemlog_ctl_set() and pmemlog_ctl_exec() functions provide a uniform interface for querying and modifying the internal behavior of libpmemlog(7) through the control (CTL) namespace.

The name argument specifies an entry point as defined in the CTL namespace specification. The entry point description specifies whether the extra arg is required. Those two parameters together create a CTL query. The functions and the entry points are thread-safe unless indicated otherwise below. If there are special conditions for calling an entry point, they are explicitly stated in its description. The functions propagate the return value of the entry point. If either name or arg is invalid, -1 is returned.

If the provided ctl query is valid, the CTL functions will always return 0 on success and -1 on failure, unless otherwise specified in the entry point description.

See more in pmem_ctl(5) man page.

CTL NAMESPACE

prefault.at_create | rw | global | int | int | - | boolean

If set, every page of the pool will be touched and written to when the pool is created, in order to trigger page allocation and minimize the performance impact of pagefaults. Affects only the pmemlog_create() function.

Always returns 0.

prefault.at_open | rw | global | int | int | - | boolean

If set, every page of the pool will be touched and written to when the pool is opened, in order to trigger page allocation and minimize the performance impact of pagefaults. Affects only the pmemlog_open() function.

Always returns 0.

sds.at_create | rw | global | int | int | - | boolean

If set, force-enables or force-disables SDS feature during pool creation. Affects only the pmemlog_create() function. See pmempool_feature_query(3) for informations about SDS (SHUTDOWN_STATE) feature.

Always returns 0.

copy_on_write.at_open | rw | global | int | int | - | boolean

If set, pool is mapped in such a way that modifications don’t reach the underlying medium. From the user’s perspective this means that when the pool is closed all changes are reverted. This feature is not supported for pools located on Device DAX.

Always returns 0.

CTL EXTERNAL CONFIGURATION

In addition to direct function call, each write entry point can also be set using two alternative methods.

The first method is to load a configuration directly from the PMEMLOG_CONF environment variable.

The second method of loading an external configuration is to set the PMEMLOG_CONF_FILE environment variable to point to a file that contains a sequence of ctl queries.

See more in pmem_ctl(5) man page.

SEE ALSO

libpmemlog(7), pmem_ctl(5) and http://pmem.io

The contents of this web site and the associated GitHub repositories are BSD-licensed open source.