From 967caf1ee78e044ef6a54b81c9061bef693b3bfa Mon Sep 17 00:00:00 2001 From: Eric Brewer Date: Sat, 2 Sep 2006 01:24:27 +0000 Subject: [PATCH] cleanup,newfigs --- doc/paper3/LLADD.bib | 21 ++++ doc/paper3/LLADD.tex | 127 ++++++++++++----------- doc/paper3/figs/bulk-load.pdf | Bin 18597 -> 18623 bytes doc/paper3/figs/mem-pressure.pdf | Bin 15905 -> 15894 bytes doc/paper3/figs/object-diff.pdf | Bin 18881 -> 18908 bytes doc/paper3/figs/trans-closure-hotset.pdf | Bin 44212 -> 18117 bytes 6 files changed, 86 insertions(+), 62 deletions(-) diff --git a/doc/paper3/LLADD.bib b/doc/paper3/LLADD.bib index a36503b..73f239d 100644 --- a/doc/paper3/LLADD.bib +++ b/doc/paper3/LLADD.bib @@ -345,6 +345,19 @@ OPTannote = {} } +@Article{stonebraker81, + author = {M. Stonebraker}, + title = {Operating System Support for Database Management}, + journal = {Communications of the ACM}, + year = {1981}, + OPTkey = {}, + volume = {24}, + number = {7}, + pages = {412--418}, + month = {July}, +} + + @Article{postgres, author = {M. Stonebraker and Greg Kemnitz}, title = {The {POSTGRES} Next-Generation Database Management System}, @@ -397,6 +410,14 @@ } +@Book{GR97, + author = {Jim Gray and Andreas Reuters}, + title = {Transaction Processing: Concepts and Techniques}, + publisher = {Morgan Kaufmann}, + year = {1993}, + isbn = {1-55860-190-2}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} @InProceedings{libtp, author = {Margo Seltzer and M Olsen}, diff --git a/doc/paper3/LLADD.tex b/doc/paper3/LLADD.tex index 587ebb5..ce65726 100644 --- a/doc/paper3/LLADD.tex +++ b/doc/paper3/LLADD.tex @@ -212,7 +212,7 @@ the ideas presented here is available (see Section~\ref{sec:avail}). \label{sec:notDB} Database research has a long history, including the development of -many technologies that our system builds upon. This section explains +many of the technologies we exploit. This section explains why databases are fundamentally inappropriate tools for system developers, and covers some of the previous responses of the systems community. These problems have been the focus of @@ -221,10 +221,10 @@ database and systems researchers for at least 25 years. \subsection{The Database View} The database community approaches the limited range of DBMSs by either -creating new top-down models, such as XML databases, +creating new top-down models, such as XML databases~\cite{XMLdb}, or by extending the relational model~\cite{codd} along some axis, such -as new data types. (We cover these attempts in more detail in -Section~\ref{sec:related-work}.) \eab{add cites} +as new data types. We cover these attempts in more detail in +Section~\ref{sec:related-work}. %Database systems are often thought of in terms of the high-level %abstractions they present. For instance, relational database systems @@ -290,7 +290,7 @@ these in more detail in Section~\ref{sec:related-work}. In some sense, our hypothesis is trivially true in that there exists a bottom-up framework called the ``operating system'' that can implement all of the models. A famous database paper argues that it does so -poorly (Stonebraker 1980~\cite{Stonebraker80}). Our task is really to +poorly (Stonebraker 1981~\cite{Stonebraker81}). Our task is really to simplify the implementation of transactional systems through more powerful primitives that enable concurrent transactions with a variety of performance/robustness tradeoffs. @@ -309,9 +309,9 @@ hash tables, and other access methods. It provides flags that let its users tweak aspects of the performance of these primitives, and selectively disable the features it provides. -With the exception of the benchmark designed to fairly compare the two +With the exception of the benchmark designed to compare the two systems, none of the \yad applications presented in -Section~\ref{sec:extensions} are efficiently supported by Berkeley DB. +Section~\ref{experiments} are efficiently supported by Berkeley DB. This is a result of Berkeley DB's assumptions regarding workloads and decisions regarding low-level data representation. Thus, although Berkeley DB could be built on top of \yad, Berkeley DB's data model @@ -404,7 +404,7 @@ performance, since the synchronous writes to the log are sequential. Later, the pages are written out asynchronously, often as part of a larger sequential write. -After a crash, we have to apply the REDO entries to those pages that +After a crash, we have to apply the redo entries to those pages that were not updated on disk. To decide which updates to reapply, we use a per-page version number called the {\em log-sequence number} or {\em LSN}. Each update to a page increments the LSN, writes it on the @@ -427,7 +427,7 @@ active transaction in progress all the time. Systems that support {\em steal} avoid these problems by allowing pages to be written back early. This implies we may need to undo updates on the page if the transaction aborts, and thus before we can write out the page we must -write the UNDO information to the log. +write the undo information to the log. On recovery, the redo phase applies all updates (even those from aborted transactions). Then, an undo phase corrects stolen pages for @@ -451,7 +451,7 @@ argument. The undo entry is analogous.\endnote{For efficiency, undo and redo operations are packed into a single log entry. Both must take the same parameters.} \yad ensures the correct ordering and timing of all log entries and page writes. We describe operations in more -detail in Section~\ref{operations} +detail in Section~\ref{sec:operations} %\subsection{Multi-page Transactions} @@ -485,7 +485,7 @@ To understand the problems that arise with concurrent transactions, consider what would happen if one transaction, A, rearranges the layout of a data structure. Next, a second transaction, B, modifies that structure and then A aborts. When A rolls back, its -UNDO entries will undo the rearrangement that it made to the data +undo entries will undo the rearrangement that it made to the data structure, without regard to B's modifications. This is likely to cause corruption. @@ -515,7 +515,7 @@ splitting tree nodes. The internal operations do not need to be undone if the containing transaction aborts; instead of removing the data item from the page, and merging any nodes that the insertion split, we simply -remove the item from the set as application code would; we call the +remove the item from the set as application code would --- we call the data structure's {\em remove} method. That way, we can undo the insertion even if the nodes that were split no longer exist, or if the data item has been relocated to a different page. This @@ -523,12 +523,11 @@ lets other transactions manipulate the data structure before the first transaction commits. In \yad, each nested top action performs a single logical operation by applying -a number of physical operations to the page file. Physical \rcs{get rid of ALL CAPS...} REDO and -UNDO log entries are stored in the log so that recovery can repair any +a number of physical operations to the page file. Physical redo and undo log entries are stored in the log so that recovery can repair any temporary inconsistency that the nested top action introduces. Once -the nested top action has completed, a logical UNDO entry is recorded, +the nested top action has completed, a logical undo entry is recorded, and a CLR is used to tell recovery and abort to skip the physical -UNDO entries. +undo entries. This leads to a mechanical approach for creating reentrant, concurrent operations: @@ -536,9 +535,9 @@ operations: \begin{enumerate} \item Wrap a mutex around each operation. With care, it is possible to use finer-grained latches in a \yad operation, but it is rarely necessary. -\item Define a {\em logical} UNDO for each operation (rather than just - using a set of page-level UNDOs). For example, this is easy for a - hash table: the UNDO for {\em insert} is {\em remove}. This logical +\item Define a {\em logical} undo for each operation (rather than just + using a set of page-level undos). For example, this is easy for a + hash table: the undoS for {\em insert} is {\em remove}. This logical undo function should arrange to acquire the mutex when invoked by abort or recovery. \item Add a ``begin nested top action'' right after the mutex @@ -567,6 +566,7 @@ with the variable-sized atomic updates covered in Section~\ref{sec:lsn-free}. \subsection{User-Defined Operations} +\label{sec:operations} The first kind of extensibility enabled by \yad is user-defined operations. Figure~\ref{fig:structure} shows how operations interact with \yad. A @@ -589,10 +589,10 @@ write-ahead logging rules required for steal/no-force transactions by controlling the timing and ordering of log and page writes. Each operation should be deterministic, provide an inverse, and acquire all of its arguments from a struct that is passed via {\tt Tupdate()}, from -the page it updates, or typically both. The callbacks used +the page it updates, or both. The callbacks used during forward operation are also used during recovery. Therefore operations provide a single redo function and a single undo function. -(There is no ``do'' function.) This reduces the amount of +There is no ``do'' function, which reduces the amount of recovery-specific code in the system. %{\tt Tupdate()} writes the struct @@ -629,7 +629,7 @@ implementation must obey a few more invariants: Tupdate()}. \item Page updates atomically update the page's LSN by pinning the page. %\item If the data seen by a wrapper function must match data seen -% during REDO, then the wrapper should use a latch to protect against +% during redo, then the wrapper should use a latch to protect against % concurrent attempts to update the sensitive data (and against % concurrent attempts to allocate log entries that update the data). \item Nested top actions (and logical undo) or ``big locks'' (total isolation) should be used to manage concurrency (Section~\ref{sec:nta}). @@ -723,8 +723,7 @@ The transactions described above only provide the typically provided by locking, which is a higher level but compatible layer. ``Consistency'' is less well defined but comes in part from low-level mutexes that avoid races, and in part from -higher-level constructs such as unique key requirements. \yad (and many databases), -supports this by distinguishing between {\em latches} and {\em locks}. +higher-level constructs such as unique key requirements. \yad and most databases support this by distinguishing between {\em latches} and {\em locks}. Latches are provided using OS mutexes, and are held for short periods of time. \yads default data structures use latches in a way that does not deadlock. This allows higher-level code to treat @@ -1021,8 +1020,8 @@ optimizations and a wide-range of transactional systems. \yad provides applications with the ability to customize storage routines and recovery semantics. In this section, we show that this flexibility does not come with a significant performance cost for -general purpose transactional primitives, and show how a number of -special purpose interfaces aid in the development of higher-level +general-purpose transactional primitives, and show how a number of +special-purpose interfaces aid in the development of higher-level code while significantly improving application performance. \subsection{Experimental setup} @@ -1119,8 +1118,7 @@ function~\cite{lht}, allowing it to increase capacity incrementally. It is based on a number of modular subcomponents. Notably, the physical location of each bucket is stored in a growable array of fixed-length entries. The bucket lists are provided by the user's -choice of two different linked-list implementations. \eab{still -unclear} \rcs{OK now?} +choice of two different linked-list implementations. The hand-tuned hash table is also built on \yad and also uses a linear hash function. However, it is monolithic and uses carefully ordered writes to @@ -1153,7 +1151,7 @@ optimize important primitives. %the transactional data structure implementation. Figure~\ref{fig:TPS} describes the performance of the two systems under -highly concurrent workloads using the ext3 filesystem.endnote{The multi-threaded benchmarks +highly concurrent workloads using the ext3 filesystem.\endnote{The multi-threaded benchmarks presented here were performed using an ext3 file system, as high concurrency caused both Berkeley DB and \yad to behave unpredictably when ReiserFS was used. However, \yads multi-threaded throughput @@ -1206,18 +1204,18 @@ persistence library, \oasys. \oasys makes use of pluggable storage modules that implement persistent storage, and includes plugins for Berkeley DB and MySQL. -This section will describe how the \yad \oasys plugin supports optimizations that reduce the +This section describes how the \yads plugin supports optimizations that reduce the amount of data written to log and halve the amount of RAM required. -We present three variants of the \yad plugin. One treats +We present three variants of the \yad plugin. The basic one treats \yad like Berkeley DB. The ``update/flush'' variant customizes the behavior of the buffer manager. Finally, the -``delta'' variant, uses update/flush, and only logs the differences -between versions of objects. +``delta'' variant, uses update/flush, but only logs the differences +between versions. The update/flush variant allows the buffer manager's view of live application objects to become stale. This is safe since the system is always able to reconstruct the appropriate page entry from the live -copy of the object. This reduces the number of times the \yad \oasys +copy of the object. This reduces the number of times the \oasys plugin must update serialized objects in the buffer manager, and allows us to drastically decrease the amount of memory used by the buffer manager. @@ -1244,14 +1242,14 @@ allocations and deallocations based on the page LSN. To redo an update, we first decide whether the object that is being updated exists on the page. If so, we apply the blind update. If not, then the object must have already been freed, so we do not apply the -update. Because support for blind updates is not yet implemented, the +update. Because support for blind updates is only partially implemented, the experiments presented below mimic this behavior at runtime, but do not support recovery. We also considered storing multiple LSNs per page and registering a callback with recovery to process the LSNs. However, in such a scheme, the object allocation routine would need to track objects that -were deleted but still may be manipulated during REDO. Otherwise, it +were deleted but still may be manipulated during redo. Otherwise, it could inadvertently overwrite per-object LSNs that would be needed during recovery. % @@ -1313,10 +1311,15 @@ To determine the effect of the optimization in memory bound systems, we decreased \yads page cache size, and used O\_DIRECT to bypass the operating system's disk cache. We partitioned the set of objects so that 10\% fit in a {\em hot set} \rcs{This doesn't make sense: that is small enough to fit into -memory}. Figure~\ref{fig:OASYS} presents \yads performance as we varied the +memory}. Figure~\ref{fig:OASYS} also presents \yads performance as we varied the percentage of object updates that manipulate the hot set. In the memory bound test, we see that update/flush indeed improves memory -utilization. \rcs{Graph axis should read ``percent of updates in hot set''} +utilization. + + + + + \subsection{Request reordering} @@ -1349,7 +1352,7 @@ reordering is inexpensive.} We are interested in using \yad to directly manipulate sequences of application requests. By translating these requests into the logical operations that are used for logical undo, we can use parts of \yad to -manipulate and interpret such requests. Because logical generally +manipulate and interpret such requests. Because logical operations generally correspond to application-level operations, application developers can easily determine whether logical operations may be reordered, transformed, or even dropped from the stream of requests that \yad is processing. For example, @@ -1386,16 +1389,16 @@ The second experiment measures the effect of graph locality (Figure~\ref{fig:hotGraph}). Each node has a distinct hot set that includes the 10\% of the nodes that are closest to it in ring order. The remaining nodes are in the cold set. We do not use ring edges for -this test, so the graphs might not be connected. (We use the same set -of graphs for both systems.) +this test, so the graphs might not be connected. We use the same set +of graphs for both systems. When the graph has good locality, a normal depth first search traversal and the prioritized traversal both perform well. As locality decreases, the partitioned traversal algorithm outperforms the naive traversal. -\rcs{Graph axis should read ``Percent of edges in hot set'', or -``Percent local edges''.} + + \section{Related Work} \label{sec:related-work} @@ -1419,16 +1422,16 @@ subsequent systems (including \yad), it supports custom operations. Subsequent extensible database work builds upon these foundations. The Exodus~\cite{exodus} database toolkit is the successor to Genesis. It uses abstract data type definitions, access methods and -cost models to automatically generate query optimizers and execution -engines. +cost models to generate query optimizers and execution +engines automatically. Object-oriented database systems (\rcs{cite something?}) and relational databases with support for user-definable abstract data types (such as in Postgres~\cite{postgres}) provide functionality -similar to extensible database toolkits. In contrast to database toolkits, -which leverage type information as the database server is compiled, object -oriented and object relational databases allow types to be defined at -runtime. +similar to extensible database toolkits. In contrast to database +toolkits, which leverage type information as the database server is +compiled, object-oriented and object-relational databases allow types +to be defined at runtime. Both approaches extend a fixed high-level data model with new abstract data types. This is of limited use to applications that are @@ -1448,7 +1451,7 @@ unpredictable and unmanageable to scale up to the size of today's systems. Similarly, they are a poor fit for small devices. SQL's declarative interface only complicates the situation. -The study suggests the adoption of highly modular {\em RISC} database +The study suggests the adoption of highly modular ``RISC'' database architectures, both as a resource for researchers and as a real-world database system. RISC databases have many elements in common with database toolkits. However, they would take the idea one step @@ -1510,8 +1513,8 @@ Nested transactions simplify distributed systems; they isolate failures, manage concurrency, and provide durability. In fact, they were developed as part of Argus, a language for reliable distributed applications. An Argus program consists of guardians, which are essentially objects that -encapsulate persistent and atomic data. While accesses to {\em atomic} data are -serializable {\em persistent} data is not protected by the lock manager, +encapsulate persistent and atomic data. Although accesses to {\em atomic} data are +serializable, {\em persistent} data is not protected by the lock manager, and is used to implement concurrent data structures~\cite{argus}. Typically, the data structure is stored in persistent storage, but is augmented with information in atomic storage. This extra data tracks the @@ -1592,17 +1595,15 @@ available. In QuickSilver, nested transactions would be most useful when a series of program invocations form a larger logical unit~\cite{experienceWithQuickSilver}. -\subsection{Transactional data structures} - -\rcs{Better section name?} +\subsection{Data Structure Frameworks} As mentioned in Section~\ref{sec:system}, Berkeley DB is a system quite similar to \yad, and provides raw access to transactional data structures for application -programmers~\cite{libtp}. +programmers~\cite{libtp}. \eab{summary?} Cluster hash tables provide scalable, replicated hashtable -implementation by partitioning the hash's buckets across multiple +implementation by partitioning the table's buckets across multiple systems. Boxwood treats each system in a cluster of machines as a ``chunk store,'' and builds a transactional, fault tolerant B-Tree on top of the chunks that these machines export. @@ -1613,6 +1614,8 @@ fault tolerance. In contrast, \yad makes it easy to push intelligence into the individual nodes, allowing them to provide primitives that are appropriate for the higher-level service. + + \subsection{Data layout policies} \label{sec:malloc} Data layout policies make decisions based upon @@ -1801,11 +1804,11 @@ and read-only access methods. The wrapper function modifies the state of the page file by packaging the information that will be needed for undo and redo into a data format of its choosing. This data structure is passed into Tupdate(). Tupdate() copies the data to the log, and -then passes the data into the operation's REDO function. +then passes the data into the operation's redo function. -REDO modifies the page file directly (or takes some other action). It +Redo modifies the page file directly (or takes some other action). It is essentially an interpreter for the log entries it is associated -with. UNDO works analogously, but is invoked when an operation must +with. Undo works analogously, but is invoked when an operation must be undone (usually due to an aborted transaction, or during recovery). This pattern applies in many cases. In @@ -1813,10 +1816,10 @@ order to implement a ``typical'' operation, the operation's implementation must obey a few more invariants: \begin{itemize} -\item Pages should only be updated inside REDO and UNDO functions. +\item Pages should only be updated inside redo and undo functions. \item Page updates atomically update the page's LSN by pinning the page. \item If the data seen by a wrapper function must match data seen - during REDO, then the wrapper should use a latch to protect against + during redo, then the wrapper should use a latch to protect against concurrent attempts to update the sensitive data (and against concurrent attempts to allocate log entries that update the data). \item Nested top actions (and logical undo) or ``big locks'' (total isolation but lower concurrency) should be used to manage concurrency (Section~\ref{sec:nta}). diff --git a/doc/paper3/figs/bulk-load.pdf b/doc/paper3/figs/bulk-load.pdf index 0195b7fd1d0ef2803da874faa29768f127c34f68..f748e628de2019b132cd754530475e00d0704cf6 100644 GIT binary patch delta 5652 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 I!=GXPFBdPAyA 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 delta 3466 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 WK&NvT^p(YlIE0vnhKY?SLhN7j)u&wm diff --git a/doc/paper3/figs/object-diff.pdf b/doc/paper3/figs/object-diff.pdf index f5fcc8b2a24589f73b3fb2b3e7fe34d615128276..e7a3827c07d0f2e0147cae74fc38073c7ef04467 100644 GIT binary patch delta 5642 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 delta 5628 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 UWrE`{2n;Keq@=bnk(KFx0Az~Iwg3PC diff --git a/doc/paper3/figs/trans-closure-hotset.pdf b/doc/paper3/figs/trans-closure-hotset.pdf index 21f682a52c679ebab763edf7a29a03506320013a..40ff5c3fe939e924262a495179345e36c1b4e1e0 100644 GIT binary patch literal 18117 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 literal 44212 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®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 K(K6I#W&S_%-Ktvv