Hardware Reference
In-Depth Information
14.2.2 PLFS Flat File Mode
PLFS flat file mode was subsequently added to reduce metadata contention
when many processes concurrently create files within a single directory. The
basic motivation is that when multiple processes modify a shared object con-
currently, they often incur locks and serialization bottlenecks in many storage
systems. In the PLFS shared file mode, the shared object is a file and the con-
current modifications are writes, whereas the PLFS flat file mode is for the
case in which the shared object is a directory and the concurrent modifications
are file creations. Just as PLFS shared file mode creates a virtual container to
store the subfiles, the PLFS flat file mode creates a virtual directory from a
set of subdirectories on the underlying storage system(s). When a user creates
a file, PLFS hashes the filename to determine in which subdirectory to store
that file. Reads and queries of files share the hash function so that they can
quickly find requested files from the set of subdirectories. The PLFS flat file
mode will achieve maximum performance improvements when it is configured
to use multiple storage systems, and therefore multiple metadata servers to
create its set of subdirectories.
In this way, when multiple files are concurrently created with a PLFS
directory, PLFS spreads the create workload across multiple metadata servers.
This is an important feature of the software-defined storage approach. It is
easy for a system administrator to buy multiple storage systems but dicult
to allow unmodified applications to spread their workload across them. With
PLFS, it is a simple matter of modifying the PLFS configuration file to include
all of the available storage systems. PLFS flat file mode is described in more
detail in Bent et al. [4].
14.2.3 PLFS Small File Mode
The third mode of PLFS is the small file mode, the architecture of which
is shown in Figure 14.2. This mode is designed for the workload in which
individual processes want to create a large number of small files in a short
period of time. This workload is challenging for storage systems, which must
allocate some amount of resource for each file. For a stream of many small files,
this resource allocation quickly becomes a bottleneck. PLFS small file mode,
like the PLFS shared file mode, creates a PLFS container. However, PLFS
small file mode creates a PLFS small file container for each PLFS directory,
whereas the PLFS shared file mode creates a PLFS shared file container for
each PLFS file.
When an application creates a set of small files, PLFS small file mode will
aggregate all of the data for each small file into a single large file stored on
the underlying storage system. It will also create a metadata file to store the
necessary information to allow finding small files and their data within the
single large aggregated file.
 
Search WWH ::




Custom Search