[Active Projects] [Past Projects]
In most existing file systems,
when an object is written or deleted, an immediate and irrevocable
effect is had on the backing store; unless a backup copy exists,
all changes and versions previous to these
operation are lost forever. Ext3cow is
designed as an extension to the ext3 file system,
the default file system use in the majority of Linux distributions.
This extension implements
a copy-on-write scheme when writing data by creating a new allocation
for changed blocks, while preserving the old data blocks as part of a previous version.
By introducing slightly modified meta-data, ext3cow allows
logically complete versions of files and directories to
co-exist with each other and share data blocks.
Sets of files that exist together in time can be captured by taking a
file system snap-shot that allows for replica distribution,
backup and recovery, and rollback in case of intrusion.
You can download and install the kernel patches for ext3cow, as well
read more about the file system, at its homepage.
This work is sponsored by NSF Award CCF-0238305, "CAREER: Interoperation among Heterogeneous Global-Scale Storage Systems."
Caching is a proven technique for improving scalability and
performance in large-scale distributed systems. There have been recent
efforts to cache structured data at edge servers, which
provides huge speed-ups for online databases serving dynamic content.
These include e-commerce sites, content distribution networks (CDNs), such
as Akamai. These solutions are either application specific or are
tied to commercial databases. For scientific databases,
existing caching solutions are too rigid in structure and not adaptive to
workload. Moreover, current schemes cater to gigabyte-size databases and,
therefore, they are ineffective for the terabyte and petabyte size databases
common in scientific applications. Our research focuses on building
workload adaptive, self-managing, schema-independent caching systems
for large-scale scientific databases. We deploy caches as server-side
proxies that are independent of the databases that store the
cached data. Our system can even federate data from multiple sources.
We are building caching systems for the astronomy databases of the
Sloan
Digitial Sky Survey. This project is sponsored by NSF Award IIS-IIS-0430848, "Bypass-Yield Caching for Large-Scale Scientific Database Workloads in the World-Wide Telescope".
Computational turbulence experiments are currently bound by many factors, including
the size of the memory on the computer cluster on which they are run and the availability
of computing resources. We are building a 100-Terabyte database that will store the
result of large-scale turbulence experiments. Such a database allows scientists to
study the result of an experiment, by querying the database from a Web browser using
Web services applications. It also allows scientists to conduct other experiments
against the stored data, such as particle and structure tracking, all without
using resources on expensive computing clusters. We are actively investigating
data organization problems, such as partitioning the simulation time-space across many
database nodes, data indexing using space filling curves, and the use of
partial replication in conjunction with overlapped (redundant) storage to handle
the inevitable disk failures in systems at this scale. This is joint work with
Ethan Vishniac, Alex Szalay, Charles Meneveau, Shi-Yi Chen, Gregory Eyink, all
at Johns Hopkins University, and Jim Gray at Microsoft Research. This work is sponsored by NSF Award AST-0428325, "Exploring the Lagrangian Structure of Complex Flows with 100 Terabyte Datasets."
Versioning storage systems are increasingly important in
research and commercial applications.
However, existing versioning storage systems
overlook fine-grained, secure deletion as an essential requirement.
Secure deletion is the act of removing
digital information from a storage system so that it can never be
recovered.
Currently, there are no efficient methods for fine-grained secure deletion
in versioning storage systems.
We have developed two methods for the secure deletion of individual
versions that minimize the amount of secure overwriting
while providing authenticated encryption.
Our techniques combine disk encryption with secure overwriting so
that a large amount of file data (any block size)
are deleted by overwriting a small stub of 128 bits.
Unlike encryption keys, stubs are not secret and may be
stored on disk.
We are implementing these deletion techniques in the ext3cow
versioning file system, designed for version management in the
regulatory environment.
This project is sponsored by NSF Award IIS-0456027, Securely Managing the Lifetime of Versions in Digital Archives.
The advent of Sarbanes-Oxley (SOX) has irrevocably changed the audit process.
SOX mandates the retention of corporate records and audit information for
a given period of time,
and that corporations may be open litigation and civil and criminal
penalties should they fall out of regulatory compliance.
We're building a system
for the verification of version histories in versioning file system based
on generating messages authentication codes (MACs) for versions and
archiving them with a third party. At a later time, a version history
may be verified by an auditor. The file system is challenged to
produce data that matches the MAC, ensuring that the system's past
data have not been altered. Our design goals include minimizing the
network, computational, and storage resources used in the publication
of data and the audit process. We employ parallel message
authentication codes that allow MACs to be computed incrementally - based
only on data that have changed from the previous version. By
verifying any two versions, our system guarantees the authenticity
of all interior versions.
We are also developing technologies that validate version histories in
the presence of failures using approximate MACs.
This project is sponsored by NSF Award IIS-0456027, Securely Managing the Lifetime of Versions in Digital Archives.
Clusters of commodity components are commonly used to implement
cost-effective, high-performance systems.
Current distributed file systems fail to meet the demands of the
applications running on this type of cluster,
when the amount of data-sharing between components is significant.
The file server is required to serialize access to shared-data, and hence,
the application performance decreases. We propose file system extensions,
specific to the ubiquitous NFS protocol, to support file
sharing more efficiently. The contribution of our work is best
applicable in environments in which the clients access data from a remote
storage server over a high-latency network.
Furthermore, we provide a model in which the file system (NFSv4),
provides built-in support for fault-tolerant applications. Elements such
as data availability, output commit, repeatable reads and recoverability,
formerly addressed in the application domain, are now delegated to the
file system.
This work was sponsored by NSF Award CCF-0238305, "CAREER: Interoperation among Heterogeneous Global-Scale Storage Systems."
We are currently pursuing
research in dynamic and future adaptable cluster management.
This includes the placement of load on clusters and the movement of load in
response to changing access
patterns, system or network failures, and the addition of hardware. The goal
of this research is to build a
self-managing resource allocation and load balancing system that adapts to
heterogeneous servers and non-uniform workloads with no apriori knowledge of
either. [...more...] This work was sponsored by NSF Award CCF-0238305, "CAREER: Interoperation among Heterogeneous Global-Scale Storage Systems."
Mobile and wireless devices are the technology that enables the workflow
applications that bind humans and computers together. Synchronizing data among
these devices is a prinicpal challenge, particularly because the tools that
update versions efficiently (delta compression and rsync) cannot be used
on space-limited devices. These technique update a version across a network
using little time and bandwidth by encoding the new version as a small
set of changes to be applied to the old version. However, they require
the old version to be present while manifesting the new version, which uses
space to store both at the same time. We have created "in-place"
delta compression and in-place rsync, which update a version in the memory or storage
the current version occupies. By reducing space requirements, these technologies
bring the benefits of delta compression and rsync to the resource-constrained
devices that need them the most.
[...more...] In recent years, file system access
patterns have been studied in order to perform "predictive prefetching"
in which files are read by the system before they are requested based on
estimates on the likelihood of their access. However, file prefetching has
significant drawbacks, because prefetching workload interferes with the
on-demand workload, and because it is difficult to perform prefetches early
enough to achieve substantial savings, e.g. a prefetch executed 1 ms
ahead of an I/O that takes 10 ms only saves 10%. As an alternative to
prefetching, we are conducting research on implicit prefetching through
file grouping, which achieves a prefetching-like affect with none of
prefetching's concomitant drawbacks [...more...]
The HSSL collaborates with the IBM Almaden Research Center on the
development of scalable cluster and distributed file systems that
leverage storage area network (SAN) technology. These are
Storage Tank and
Distributed Storage Tank respectively. In particular, we are studying
how to integrate other data sources in order to share, migrate, and replicate
the information stored they store.
Active Projects
Ext3cow
Bypass Caching for Scientific Databases
The 100-TB Turbulence Database
Secure Deletion for Versioning File Systems
Verifiable Audit Trails for Versioning File Systems
Past Projects
Clustering with NFSv4
FASTCAR:
Future-Adaptable, Self-Tuning Clustering and Allocation of Resources
Synchronizing Data In-Place
Storage Tank and Distributed Storage Tank