Made a pass over the intro.

This commit is contained in:
Sears Russell 2006-04-22 20:12:30 +00:00
parent 1f86c4e6a3
commit e3af3b0299

View file

@ -118,10 +118,10 @@ a partial break from traditional database dogma.
%this has happened, the abstractions provided by database systems have %this has happened, the abstractions provided by database systems have
%seriously restricted system designs and implementations. %seriously restricted system designs and implementations.
Approximately a decade ago, the operating systems community came to Approximately a decade ago, the operating systems research community came to
the painful realization that the presence of high level abstractions the painful realization that the presence of high level abstractions
in ``unavoidable'' system components precluded the development of in ``unavoidable'' system components precluded the development of
crucial, performance sensitive applications. crucial, performance sensitive applications.~\cite{exterminate, stonebrakerDatabaseDig}
As our reliance on computing infrastructure has increased, components As our reliance on computing infrastructure has increased, components
for the reliable storage and manipulation of data have become for the reliable storage and manipulation of data have become
@ -132,9 +132,21 @@ simultaneously. Modern systems that deviate from this description are
often forced to use existing systems in degenerate ways, or to often forced to use existing systems in degenerate ways, or to
reimplement complex, bug-prone data manipulation routines by hand. reimplement complex, bug-prone data manipulation routines by hand.
Until an architectural shift in transactional storage occurs, Examples of real world systems that currently fall into this category
databases' imposition of unwanted abstraction upon their users will are web search engines, document repositories, large-scale web-email
restrict system designs and implementations. services, map and trip planning services, ticket reservation systems,
photo and video repositories, bioinformatics, version control systems,
workflow applications, CAD/VLSI applications and directory services.
Applications that have only recently begun to make use of high-level
database features include XML based systems, object persistance
mechanisms, and enterprise management systems (notably, SAP R/3).
In short, we beleive that a fundamental architectural shift in
transactional storage is necessary before general purpose storage
systems are of practical use to modern applications.
Until this change occurs, databases' imposition of unwanted
abstraction upon their users will restrict system designs and
implementations.
%To paraphrase a hard-learned lesson the operating sytems community: %To paraphrase a hard-learned lesson the operating sytems community:
% %
@ -161,17 +173,25 @@ restrict system designs and implementations.
The widespread success of lower level transactional storage libraries The widespread success of lower level transactional storage libraries
(such as Berkeley DB) is a sign of these trends. However, the level of (such as Berkeley DB) is a sign of these trends. However, the level
abstraction provided by these systems is well above the hardware of abstraction provided by these systems is well above the hardware
level, and applications that must resort to ad-hoc storage mechanisms level, and applications that resort to ad-hoc storage mechanisms are
are still common. still common.
This paper presents \yad, a library that provides transactional This paper presents \yad, a library that provides transactional
storage at a level of abstraction as close to the hardware as storage at a level of abstraction as close to the hardware as
possible. The library can support special purpose, transactional possible. The library can support special purpose, transactional
storage interfaces as well as ACID, database style interfaces to storage interfaces as well as ACID, database style interfaces to
abstract data models. A partial implementation of the ideas presented abstract data models.
below is available; performance numbers are presented when possible.
Notably, \yad incorporates many existing technologies from the storage
communities, and allows applications to incorporate appropriate
subsystems as necessary. A partial open-source implementation of the
ideas presented below is available; performance numbers are provided
when possible.
**We've explained why the sky is falling. Now, explain why \yad is
so good. (Take ideas from old paper.)**
\section{Prior work} \section{Prior work}