[Active Projects] [Past Projects]

Active Projects

Ext3cow

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."

Bypass Caching for Scientific Databases

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".

The 100-TB Turbulence Database

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."

Secure Deletion for Versioning File Systems

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.

Verifiable Audit Trails for Versioning File Systems

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.


Past Projects

Clustering with NFSv4

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."

FASTCAR:
Future-Adaptable, Self-Tuning Clustering and Allocation of Resources

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."

Synchronizing Data In-Place

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...]

Implicit Prefetching

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...]

Storage Tank and Distributed Storage Tank

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.