File Systems simplify storing and organizing
data. But they often cause significant
performance loss. For instance, while ZFS
is impressive in terms of its convenience,
scale, and data reliability, the interior design
reduces random write throughput from gigabytes
to megabytes per second. Similarly, ZFS
uses a B-tree to organize access to data.
B-tree usage in a terabyte storage environment
requires about 15 reads merely to access the
location of data. Many of these are "real reads"
rather than reads from storage media. This
profoundly slows down read rates.
WFFS - short for WildFire File System
- is designed to overcome the performance issues
inherent in most file systmes while achieving
the reliability, flexibility, and scale expected
of the best and most reliable file systems.
WildFire has already demonstrated a high
performance block product: ESS - Enterprise
Storage Stack. ESS converts clusters of
random writes into linear writes. As a
result, it inherently writes at the composite
linear write rate of the SSDs present.
Similarly, ESS can update both regular and SMR
hard disks at their linear write speed.
ESS by itself does not improve reads. But
it reduces read amplification. For
instance, when fully memory mapped, ESS performs
one memory read per data block read. When
using third party file systems such as ZFS, XFS,
NTSF, and so forth, both ESS ans WFFS can
maximize the performance of these. But
when WFFS is the primary file system, it can
dramatically increase read performance by as
much as ten-fold because the ten to twenty reads
of a b-tree based read-access can be replaced
with one to three hash-based reads.
There are other ways of attaining efficiency in
file systems. For instance, on the one
hand, memory virtualization can reduce memory
requirements by a factor of 10. Hashing
can be used to reduce named file and directory
lookups to just two or three per actual read.
Similarly, by requiring that all writes to hard
disks be "big", while sending all "small" writes
to flash it's possible to use hard disks only
where they are most efficient: with large sized
files.