  Fragmentation leads to unpredictable and degraded application performance.
While these problems have been studied in detail for desktop filesystem
workloads, this study examines newer systems such as scalable object stores and
multimedia repositories. Such systems use a get/put interface to store objects.
In principle, databases and filesystems can support such applications
efficiently, allowing system designers to focus on complexity, deployment cost
and manageability. Although theoretical work proves that certain storage
policies behave optimally for some workloads, these policies often behave
poorly in practice. Most storage benchmarks focus on short-term behavior or do
not measure fragmentation. We compare SQL Server to NTFS and find that
fragmentation dominates performance when object sizes exceed 256KB-1MB. NTFS
handles fragmentation better than SQL Server. Although the performance curves
will vary with other systems and workloads, we expect the same interactions
between fragmentation and free space to apply. It is well-known that
fragmentation is related to the percentage free space. We found that the ratio
of free space to object size also impacts performance. Surprisingly, in both
systems, storing objects of a single size causes fragmentation, and changing
the size of write requests affects fragmentation. These problems could be
addressed with simple changes to the filesystem and database interfaces. It is
our hope that an improved understanding of fragmentation will lead to
predictable storage systems that require less maintenance after deployment.
