.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "" "" "2023-05-31" "PMDK - " "PMDK Programmer's Manual" .hy .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright 2016-2023, Intel Corporation .SH NAME .PP \f[B]pmempool-transform\f[R] - Modify internal structure of a pool set. .SH SYNOPSIS .IP .nf \f[C] pmempool transform [options] \f[R] .fi .SH NOTE .RS .PP NOTICE: The \f[B]libpmemblk\f[R] and \f[B]libpmemlog\f[R] libraries are deprecated since PMDK 1.13.0 release. .RE .SH DESCRIPTION .PP The \f[B]pmempool transform\f[R] command modifies internal structure of a pool set defined by the \f[C]poolset_file_src\f[R] file, according to a structure described in the \f[C]poolset_file_dst\f[R] file. .PP The following operations are supported: .IP \[bu] 2 adding replicas - one or more new replicas can be added and synchronized with other replicas in the pool set, .IP \[bu] 2 removing replicas - one or more replicas can be removed from the pool set , .IP \[bu] 2 adding or removing pool set options. .PP Only one of the above operations can be performed at a time. .PP Currently adding and removing replicas are allowed only for \f[B]pmemobj\f[R] pools (see \f[B]libpmemobj\f[R](7)). .PP The \f[I]poolset_file_src\f[R] argument provides the source pool set to be changed. .PP The \f[I]poolset_file_dst\f[R] argument points to the target pool set. .SS Available options: .TP \f[B]\f[CB]-d, --dry-run\f[B]\f[R] Enable dry run mode. In this mode no changes are applied, only check for viability of the operation is performed. .TP \f[B]\f[CB]-v, --verbose\f[B]\f[R] Increase verbosity level. .TP \f[B]\f[CB]-h, --help\f[B]\f[R] Display help message and exit. .SH EXAMPLES .SS Example 1. .PP Let files \f[C]/path/poolset_file_src\f[R] and \f[C]/path/poolset_file_dst\f[R] have the following contents: .IP .nf \f[C] PMEMPOOLSET 20M /0/partfile1 20M /0/partfile2 25M /0/partfile3 REPLICA 40M /1/partfile1 20M /1/partfile2 \f[R] .fi .IP .nf \f[C] PMEMPOOLSET 20M /0/partfile1 20M /0/partfile2 25M /0/partfile3 REPLICA 40M /1/partfile1 20M /1/partfile2 REPLICA 50M /2/partfile1 20M /2/partfile2 \f[R] .fi .PP Then, the command .PP \f[C]pmempool transform /path/poolset_file_src /path/poolset_file_dst\f[R] .PP adds a replica to the pool set. All other replicas remain unchanged and the size of the pool remains 60M. .SS Example 2. .PP Let files \f[C]/path/poolset_file_src\f[R] and \f[C]/path/poolset_file_dst\f[R] have the following contents: .IP .nf \f[C] PMEMPOOLSET 20M /0/partfile1 20M /0/partfile2 25M /0/partfile3 REPLICA 40M /1/partfile1 20M /1/partfile2 \f[R] .fi .IP .nf \f[C] PMEMPOOLSET 20M /0/partfile1 20M /0/partfile2 25M /0/partfile3 \f[R] .fi .PP Then .PP \f[C]pmempool_transform /path/poolset_file_src /path/poolset_file_dst\f[R] .PP deletes the second replica from the pool set. The first replica remains unchanged and the size of the pool is still 60M. .SH SEE ALSO .PP \f[B]pmempool(1)\f[R], \f[B]libpmemblk(7)\f[R], \f[B]libpmemlog(7)\f[R], \f[B]libpmempool(7)\f[R] and \f[B]\f[R]