diff options
Diffstat (limited to 'bdb/docs/ref/arch')
-rw-r--r-- | bdb/docs/ref/arch/apis.html | 74 | ||||
-rw-r--r-- | bdb/docs/ref/arch/bigpic.gif | bin | 2589 -> 0 bytes | |||
-rw-r--r-- | bdb/docs/ref/arch/bigpic.html | 114 | ||||
-rw-r--r-- | bdb/docs/ref/arch/progmodel.html | 41 | ||||
-rw-r--r-- | bdb/docs/ref/arch/script.html | 29 | ||||
-rw-r--r-- | bdb/docs/ref/arch/smallpic.gif | bin | 1613 -> 0 bytes | |||
-rw-r--r-- | bdb/docs/ref/arch/utilities.html | 62 |
7 files changed, 0 insertions, 320 deletions
diff --git a/bdb/docs/ref/arch/apis.html b/bdb/docs/ref/arch/apis.html deleted file mode 100644 index d1ae91b5a74..00000000000 --- a/bdb/docs/ref/arch/apis.html +++ /dev/null @@ -1,74 +0,0 @@ -<!--$Id: apis.so,v 10.26 2000/03/18 21:43:09 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: Programmatic APIs</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> - <a name="2"><!--meow--></a> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td> -<td width="1%"><a href="../../ref/arch/progmodel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/script.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>Programmatic APIs</h1> -<p>The Berkeley DB subsystems can be accessed through interfaces from multiple -languages. The standard library interface is ANSI C. Applications can -also use Berkeley DB via C++ or Java, as well as from scripting languages. -Environments can be shared among applications written using any of theses -APIs. For example, you might have a local server written in C or C++, a -script for an administrator written in Perl or Tcl, and a web based user -interface written in Java, all sharing a single database environment. -<h3>C</h3> -<p>The Berkeley DB library is written entirely in ANSI C. C applications use a -single include file: -<p><blockquote><pre>#include <db.h></pre></blockquote> -<h3>C++</h3> -<p>The C++ classes provide a thin wrapper around the C API, with the major -advantages being improved encapsulation and an optional exception -mechanism for errors. C++ applications use a single include file: -<p><blockquote><pre>#include <db_cxx.h></pre></blockquote> -<p>The classes and methods are named in a fashion that directly corresponds -to structures and functions in the C interface. Likewise, arguments to -methods appear in the same order as the C interface, except to remove the -explicit <b>this</b> pointer. The #defines used for flags are identical -between the C and C++ interfaces. -<p>As a rule, each C++ object has exactly one structure from the underlying -C API associated with it. The C structure is allocated with each -constructor call and deallocated with each destructor call. Thus, the -rules the user needs to follow in allocating and deallocating structures -are the same between the C and C++ interfaces. -<p>To ensure portability to many platforms, both new and old, Berkeley DB makes as -few assumptions as possible about the C++ compiler and library. For -example, it does not expect STL, templates or namespaces to be available. -The newest C++ feature used is exceptions, which are used liberally to -transmit error information. Even the use of exceptions can be disabled -at runtime. -<h3>JAVA</h3> -<p>The Java classes provide a layer around the C API that is almost identical -to the C++ layer. The classes and methods are, for the most part -identical to the C++ layer. Db constants and #defines are represented as -"static final int" values. Error conditions are communicated as Java -exceptions. -<p>As in C++, each Java object has exactly one structure from the underlying -C API associated with it. The Java structure is allocated with each -constructor or open call, but is deallocated only by the Java garbage -collector. Because the timing of garbage collection is not predictable, -applications should take care to do a close when finished with any object -that has a close method. -<h3>Dbm/Ndbm, Hsearch</h3> -<p>Berkeley DB supports the standard UNIX interfaces <a href="../../api_c/dbm.html">dbm</a> (or its -<a href="../../api_c/dbm.html">ndbm</a> variant) and <a href="../../api_c/hsearch.html">hsearch</a>. After including a new header -file and recompiling, <a href="../../api_c/dbm.html">dbm</a> programs will run orders of magnitude -faster and their underlying databases can grow as large as necessary. -Historic <a href="../../api_c/dbm.html">dbm</a> applications fail when some number of entries were -inserted into the database, where the number depends on the effectiveness -of the hashing function on the particular data set. -<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/progmodel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/script.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> diff --git a/bdb/docs/ref/arch/bigpic.gif b/bdb/docs/ref/arch/bigpic.gif Binary files differdeleted file mode 100644 index 48c52aed5a2..00000000000 --- a/bdb/docs/ref/arch/bigpic.gif +++ /dev/null diff --git a/bdb/docs/ref/arch/bigpic.html b/bdb/docs/ref/arch/bigpic.html deleted file mode 100644 index 6c945744e83..00000000000 --- a/bdb/docs/ref/arch/bigpic.html +++ /dev/null @@ -1,114 +0,0 @@ -<!--$Id: bigpic.so,v 8.21 2000/12/18 21:05:14 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: The big picture</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td> -<td width="1%"><a href="../../ref/am/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/progmodel.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>The big picture</h1> -<p>The previous chapters in this Reference Guide have described applications -that use the Berkeley DB Access Methods for fast data storage and retrieval. -The applications we describe here and in subsequent chapters are similar -in nature to the Access Method applications, but they are also fully -recoverable in the face of application or system failure. -<p>Application code that only uses the Berkeley DB Access Methods might appear as -follows: -<p><blockquote><pre>switch (ret = dbp->put(dbp, NULL, &key, &data, 0)) { -case 0: - printf("db: %s: key stored.\n", (char *)key.data); - break; -default: - dbp->err(dbp, ret, "dbp->put"); - exit (1); -}</pre></blockquote> -<p>The underlying Berkeley DB architecture that supports this is: -<p align=center><img src="smallpic.gif" alt="small"> -<p>As you can see from this diagram, the application makes calls into the -Access Methods, and the Access Methods use the underlying shared memory -buffer cache to hold recently used file pages in main memory. -<p>When applications require recoverability, then their calls to the Access -Methods must be wrapped in calls to the transaction subsystem. The -application must inform Berkeley DB where to begin and end transactions, and -must be prepared for the possibility that an operation may fail at any -particular time, causing the transaction to abort. -<p>An example of transaction protected code might appear as follows: -<p><blockquote><pre>retry: if ((ret = txn_begin(dbenv, NULL, &tid)) != 0) { - dbenv->err(dbenv, ret, "txn_begin"); - exit (1); - } -<p> - switch (ret = dbp->put(dbp, tid, &key, &data, 0)) { - case DB_LOCK_DEADLOCK: - (void)txn_abort(tid); - goto retry; - case 0: - printf("db: %s: key stored.\n", (char *)key.data); - break; - default: - dbenv->err(dbenv, ret, "dbp->put"); - exit (1); - } -<p> - if ((ret = txn_commit(tid)) != 0) { - dbenv->err(dbenv, ret, "txn_commit"); - exit (1); - }</pre></blockquote> -<p>In this example, the same operation is being done as before, however, it -is wrapped in transaction calls. The transaction is started with -<a href="../../api_c/txn_begin.html">txn_begin</a>, and finished with <a href="../../api_c/txn_commit.html">txn_commit</a>. If the operation -fails due to a deadlock, then the transaction is aborted using -<a href="../../api_c/txn_abort.html">txn_abort</a>, after which the operation may be retried. -<p>There are actually five major subsystems in Berkeley DB, as follows: -<p><dl compact> -<p><dt>The Access Methods<dd>The Access Method subsystem provides general-purpose support for creating -and accessing database files formatted as Btrees, Hashed files, and -Fixed- and Variable-length records. These modules are useful in the -absence of transactions for applications that need fast, formatted file -support. See <a href="../../api_c/db_open.html">DB->open</a> and <a href="../../api_c/db_cursor.html">DB->cursor</a> for more -information. These functions were already discussed in detail in the -previous chapters. -<p><dt>The Memory Pool<dd>The memory pool subsystem is the general-purpose shared memory buffer pool -used by Berkeley DB. This is the shared memory cache that allows multiple -processes and threads within processes to share access to databases. This -module is useful outside of the Berkeley DB package for processes that require -portable, page-oriented, cached, shared file access. -<p><dt>Transactions<dd>The transaction subsystem allows a group of database changes to be -treated as an atomic unit so that either all of the changes are done, or -none of the changes are done. The transaction subsystem implements the -Berkeley DB transaction model. This module is useful outside of the Berkeley DB -package for processes that want to transaction protect their own data -modifications. -<p><dt>Locking<dd>The locking subsystem is the general-purpose lock manager used by Berkeley DB. -This module is useful outside of the Berkeley DB package for processes that -require a portable, fast, configurable lock manager. -<p><dt>Logging<dd>The logging subsystem is the write-ahead logging used to support the Berkeley DB -transaction model. It is largely specific to the Berkeley DB package, and -unlikely to be useful elsewhere except as a supporting module for the -Berkeley DB transaction subsystem. -</dl> -<p>Here is a more complete picture of the Berkeley DB library: -<p align=center><img src="bigpic.gif" alt="large"> -<p>In this example, the application makes calls to the Access Methods and to -the transaction subsystem. The Access Methods and transaction subsystem -in turn make calls into the Buffer Pool, Locking and Logging subsystems -on behalf of the application. -<p>While the underlying subsystems can each be called independently. For -example, the Buffer Pool subsystem can be used apart from the rest of -Berkeley DB by applications simply wanting a shared memory buffer pool, or -the Locking subsystem may be called directly by applications that are -doing their own locking outside of Berkeley DB. However, this usage is fairly -rare, and most applications will either use only the Access Methods, or -the Access Methods wrapped in calls to the transaction interfaces. -<table><tr><td><br></td><td width="1%"><a href="../../ref/am/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/progmodel.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> diff --git a/bdb/docs/ref/arch/progmodel.html b/bdb/docs/ref/arch/progmodel.html deleted file mode 100644 index 04284f4f37e..00000000000 --- a/bdb/docs/ref/arch/progmodel.html +++ /dev/null @@ -1,41 +0,0 @@ -<!--$Id: progmodel.so,v 10.25 2000/03/18 21:43:09 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: Programming model</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td> -<td width="1%"><a href="../../ref/arch/bigpic.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/apis.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>Programming model</h1> -<p>The Berkeley DB distribution is a database library, where the library is linked -into the address space of the code which uses it. The code using Berkeley DB -may be an application or it may be a server providing functionality to a -number of clients via some form of inter-process or remote-process -communication (IPC/RPC). -<p>In the application model, one or more applications link the Berkeley DB library -directly into their address spaces. There may be many threads of control -in this model, as Berkeley DB supports locking for both multiple processes and -for multiple threads within a process. This model provides significantly -faster access to the database functionality, but implies trust among all -threads of control sharing the database environment as they will have the -ability to read, write and potentially corrupt each other's data. -<p>In the client-server model, developers write a database server application -that accepts requests via some form of IPC and issues calls to the Berkeley DB -interfaces based on those requests. In this model, the database server -is the only application linking the Berkeley DB library into its address space. -The client-server model trades performance for protection, as it does not -require that the applications share a protection domain with the server, -but IPC/RPC is slower than a function call. Of course, in addition, this -model greatly simplifies the creation of network client-server applications. -<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/bigpic.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/apis.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> diff --git a/bdb/docs/ref/arch/script.html b/bdb/docs/ref/arch/script.html deleted file mode 100644 index 411cff4600c..00000000000 --- a/bdb/docs/ref/arch/script.html +++ /dev/null @@ -1,29 +0,0 @@ -<!--$Id: script.so,v 10.12 2000/03/18 21:43:09 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: Scripting languages</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td> -<td width="1%"><a href="../../ref/arch/apis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/utilities.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>Scripting languages</h1> -<h3>Perl</h3> -<p>Two Perl APIs are distributed with the Berkeley DB release. The Perl interface -to Berkeley DB version 1.85 is called DB_File. The Perl interface to Berkeley DB -version 2 is called BerkeleyDB. See <a href="../../ref/perl/intro.html">Using Berkeley DB with Perl</a> for more information. -<h3>Tcl</h3> -<p>A Tcl API is distributed with the Berkeley DB release. See -<a href="../../ref/tcl/intro.html">Using Berkeley DB with Tcl</a> for more -information. -<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/apis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/utilities.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> diff --git a/bdb/docs/ref/arch/smallpic.gif b/bdb/docs/ref/arch/smallpic.gif Binary files differdeleted file mode 100644 index 5eb7ae8da58..00000000000 --- a/bdb/docs/ref/arch/smallpic.gif +++ /dev/null diff --git a/bdb/docs/ref/arch/utilities.html b/bdb/docs/ref/arch/utilities.html deleted file mode 100644 index 72bfe52b21c..00000000000 --- a/bdb/docs/ref/arch/utilities.html +++ /dev/null @@ -1,62 +0,0 @@ -<!--$Id: utilities.so,v 10.23 2000/05/23 20:57:50 bostic Exp $--> -<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.--> -<!--All rights reserved.--> -<html> -<head> -<title>Berkeley DB Reference Guide: Supporting utilities</title> -<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> -<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++"> -</head> -<body bgcolor=white> - <a name="2"><!--meow--></a> -<table><tr valign=top> -<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td> -<td width="1%"><a href="../../ref/arch/script.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/intro.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p> -<h1 align=center>Supporting utilities</h1> -<p>There are several stand-alone utilities that provide supporting -functionality for the Berkeley DB environment: -<p><dl compact> -<p><dt><a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a><dd>The <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> utility is the Berkeley DB RPC server, providing -standard server functionality for client. applications. -<p><dt><a href="../../utility/db_archive.html">db_archive</a><dd>The <a href="../../utility/db_archive.html">db_archive</a> utility supports database backup, archival and log -file administration. It facilitates log reclamation and the creation of -database snapshots. Generally, some form of log archival must be done if -a database environment has been configured for logging or transactions. -<p><dt><a href="../../utility/db_checkpoint.html">db_checkpoint</a><dd>The <a href="../../utility/db_checkpoint.html">db_checkpoint</a> utility runs as a daemon process, monitoring -the database log and periodically issuing checkpoints. It facilitates -log reclamation and the creation of database snapshots. Generally, some -form of database checkpointing must be done if a database environment has -been configured for transactions. -<p><dt><a href="../../utility/db_deadlock.html">db_deadlock</a><dd>The <a href="../../utility/db_deadlock.html">db_deadlock</a> utility runs as a daemon process, periodically -traversing the database lock structures and aborting transactions when it -detects a deadlock. Generally, some form of deadlock detection must be -done if a database environment has been configured for locking. -<p><dt><a href="../../utility/db_dump.html">db_dump</a><dd>The <a href="../../utility/db_dump.html">db_dump</a> utility writes a copy of the database to a flat-text -file in a portable format. -<p><dt><a href="../../utility/db_load.html">db_load</a><dd>The <a href="../../utility/db_load.html">db_load</a> utility reads the flat-text file produced by -<a href="../../utility/db_dump.html">db_dump</a> and loads it into a database file. -<p><dt><a href="../../utility/db_printlog.html">db_printlog</a><dd>The <a href="../../utility/db_printlog.html">db_printlog</a> utility displays the contents of Berkeley DB log files -in a human-readable and parseable format. -<p><dt><a href="../../utility/db_recover.html">db_recover</a><dd>The <a href="../../utility/db_recover.html">db_recover</a> utility runs after an unexpected Berkeley DB or system -failure to restore the database to a consistent state. Generally, some -form of database recovery must be done if databases are being modified. -<p><dt><a href="../../utility/db_stat.html">db_stat</a> <dd>The <a href="../../utility/db_stat.html">db_stat</a> utility displays statistics for databases and database -environments. -<p><dt><a href="../../utility/db_upgrade.html">db_upgrade</a><dd>The <a href="../../utility/db_upgrade.html">db_upgrade</a> utility provides a command-line interface for -upgrading underlying database formats. -<p><dt><a href="../../utility/db_verify.html">db_verify</a><dd>The <a href="../../utility/db_verify.html">db_verify</a> utility provides a command-line interface for -verifying the database format. -</dl> -<p>All of the functionality implemented for these utilities is also available -as part of the standard Berkeley DB API. This means that threaded applications -can easily create a thread that calls the same Berkeley DB functions as do the -utilities. This often simplifies an application environment by removing -the necessity for multiple processes to negotiate database and database -environment creation and shutdown. -<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/script.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/intro.html"><img src="../../images/next.gif" alt="Next"></a> -</td></tr></table> -<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font> -</body> -</html> |