pmempool

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.

The pmempool utility

pmempool is a standalone utility for management and off-line analysis of persistent memory pools. It works for both the single-file pools and for pool set files.

NOTE: Support for Windows and FreeBSD are deprecated since PMDK 1.13.0 release and was removed in the PMDK 2.0.0 release.

See the pmempool(1) man page for documentation and examples:

To see man pages for older releases, go to the section “Older versions” below.

Please note:

If you are rather looking for a library instead of a utility, see libpmempool.

Available commands

Below you can find a list of all available pmempool commands.

create

The pmempool create command creates a persistent memory pool of specified type and parameters. Creating the persistent memory pool is possible using the specific library API, however using the pmempool utility for creating the pool files may simplify the user application.

See the pmempool-create(1) man page:

info

The pmempool info command performs an off-line analysis of a persistent memory pool. The pmempool info command prints all persistent data structures and evaluates some basic statistics of the pool. By default the pmempool info prints the pool header and pool descriptor data structures, but by adding command line arguments it is possible to print additional information about the pool.

See the pmempool-info(1) man page:

dump

The pmempool dump command dumps the user data stored in a persistent memory pool file. This command currently works only for the pmemblk and pmemlog pool types. It is possible to pick the data dump format as well as the range of desired data.

See the pmempool-dump(1) man page:

check

The pmempool check command checks consistency of the persistent memory pool. It prints information about errors found. This command is able to repair a broken pool in some cases. Currently it works only for the pmemblk and pmemlog pool types but the support for pmemobj pool type will be available in the near feature.

See the pmempool-check(1) man page:

rm

The pmempool rm is a simple replacement for the system rm command for the persistent memory pools. The command may be useful for removing the pool set files because it removes all part files specified in the configuration file. For single-file pools it works almost the same as the standard system rm command.

See the pmempool-rm(1) man page:

convert

The pmempool convert command performs conversion of the specified pool from the old layout versions to the newest one supported by this tool. Currently only pmemobj pools are supported.

Starting from PMDK 1.5 pmempool convert is a thin wrapper around a tool called pmdk-convert. This tool handles all versions of PMDK pools and is the recommended conversion mechanism.

See the pmdk-convert man page (for the current master documentation).

For documentation of the pmempool convert command see the man page:

sync

The pmempool sync command synchronizes data between replicas within a poolset. It checks if metadata of all replicas in a poolset are consistent, i.e. all parts are healthy, and if any of them is not, the corrupted or missing parts are recreated and filled with data from one of the healthy replicas.

See the pmempool-sync(1) man page:

transform

The pmempool transform command modifies internal structure of a poolset defined by one poolset file, according to a structure described in another poolset file.

See the pmempool-transform(1) man page:

feature

The pmempool feature command enables / disables or query pool set features.

See the pmempool-feature(1) man page:

Older versions

Version 1.12

Version 1.11

Version 1.10

Version 1.9

Version 1.8

Version 1.7

Version 1.6

Version 1.5

Version 1.4

Version 1.3

Version 1.2

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