Persistent Memory Development Kit

This is examples/libpmemblk/assetdb/README.

This example illustrates how a very simple database can be built using the
atomic arrays provided by libpmemblk.  An array of records is created to
track a list of assets (like books or computers, for example).  Each asset is
represented by a fixed-length record in the asset database.  Since updates to
a single record are atomic, the file remains consistent even if interrupted
during an update.  To run this example, follow these steps:

0. Build the example with "make".  The libraries must be built first (i.e.
   by running "make" in ../../..).

1. Create the assetdb file.  This can be anywhere but the point is it
   will be a much faster database file if it is created on a pmem-aware
   file system.  For example, if /pmem is the mount point for a
   pmem-aware file system:

	$ fallocate -l 1G /pmem/assetdb

2. Load up the assets from a list of assets, which is just a simple text
   file containing asset description strings, one per line:

	$ asset_load /pmem/assetdb assetlist

3. Print the assets using:

	$ asset_list /pmem/assetdb

4. To mark an asset as checked out to someone:

	$ asset_checkout /pmem/assetdb asset-ID name

	The asset-ID is the ID printed by asset_list.  The name may require
	quotes if it contains any whitespace or special characters.

5. To mark an asset as no longer checked out:

	$ asset_checkin /pmem/assetdb asset-ID

As this is just an example to illustrate how pmemblk works, it may take
some trial-and-error to find the best size for the assetdb -- the file
must be large enough to hold about 512 bytes for each asset record, plus
about 1% overhead used by libpmemblk to provide the atomicity.
