362
Configuring Remote Replication Using Poolsets
You are probably already familiar with using poolsets (introduced in Chapter 7) libpmemobj
to initialize remote replication, which requires two such poolset files. The file used on the
initiator side by the libpmemobj-enabled application must describe the local memory pool
and point to poolset configuration file on the target node, whereas the poolset file on the
target node must describe the memory pool shared by the target system.
Listing 18-1 shows a poolset file that will allow replicating local writes to the
“remotepool.set” on a remote host.
Listing 18-1. poolwithremotereplica.set – An example of replicating local data to
a remote host
PMEMPOOLSET
256G /mnt/pmem0/pool1
REPLICA user@example.com remotepool.set
Listing 18-2 shows a poolset file that describes the memory-mapped files shared for
the remote access. In many ways, a remote poolset file is the same as the regular poolset
file, but it must fulfill additional requirements:
• Exist in a poolset directory specified in the rpmemd configuration file
• Should be uniquely identified by its name, which an rpmem-enabled
application has to use to replicate to the specified memory pool
• Cannot define any additional replicas, local or remote
Listing 18-2. remotereplica.set – An example of how to describe the memory
pool on the remote host
PMEMPOOLSET
256G /mnt/pmem1/pool2
Performance Considerations
Once persistent memory is accessible via a remote network connection, significantly
lower latency can be achieved compared with writing to a remote SSD or legacy block
storage device. This is because the RDMA hardware is writing the remote write data
Chapter 18 remote persistent memory
Configuring Remote Replication Using Poolsets
You are probably already familiar with using poolsets (introduced in Chapter 7) libpmemobj
to initialize remote replication, which requires two such poolset files. The file used on the
initiator side by the libpmemobj-enabled application must describe the local memory pool
and point to poolset configuration file on the target node, whereas the poolset file on the
target node must describe the memory pool shared by the target system.
Listing 18-1 shows a poolset file that will allow replicating local writes to the
“remotepool.set” on a remote host.
Listing 18-1. poolwithremotereplica.set – An example of replicating local data to
a remote host
PMEMPOOLSET
256G /mnt/pmem0/pool1
REPLICA user@example.com remotepool.set
Listing 18-2 shows a poolset file that describes the memory-mapped files shared for
the remote access. In many ways, a remote poolset file is the same as the regular poolset
file, but it must fulfill additional requirements:
• Exist in a poolset directory specified in the rpmemd configuration file
• Should be uniquely identified by its name, which an rpmem-enabled
application has to use to replicate to the specified memory pool
• Cannot define any additional replicas, local or remote
Listing 18-2. remotereplica.set – An example of how to describe the memory
pool on the remote host
PMEMPOOLSET
256G /mnt/pmem1/pool2
Performance Considerations
Once persistent memory is accessible via a remote network connection, significantly
lower latency can be achieved compared with writing to a remote SSD or legacy block
storage device. This is because the RDMA hardware is writing the remote write data
Chapter 18 remote persistent memory
