1<!--$Id: what.so,v 10.23 2001/03/01 15:58:06 bostic Exp $--> 2<!--Copyright (c) 1997,2008 Oracle. All rights reserved.--> 3<!--See the file LICENSE for redistribution information.--> 4<html> 5<head> 6<title>Berkeley DB Reference Guide: What other services does Berkeley DB provide?</title> 7<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit."> 8<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++"> 9</head> 10<body bgcolor=white> 11<table width="100%"><tr valign=top> 12<td><b><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></b></td> 13<td align=right><a href="/intro/need.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/intro/distrib.html"><img src="/images/next.gif" alt="Next"></a> 14</td></tr></table> 15<p align=center><b>What other services does Berkeley DB provide?</b></p> 16<p>Berkeley DB also provides core database services to developers. These 17services include:</p> 18<br> 19<b>Page cache management:</b><ul compact><li>The page cache provides fast access to a cache of database pages, 20handling the I/O associated with the cache to ensure that dirty pages 21are written back to the file system and that new pages are allocated on 22demand. Applications may use the Berkeley DB shared memory buffer manager to 23serve their own files and pages.</ul> 24<b>Transactions and logging:</b><ul compact><li>The transaction and logging systems provide recoverability and atomicity 25for multiple database operations. The transaction system uses two-phase 26locking and write-ahead logging protocols to ensure that database 27operations may be undone or redone in the case of application or system 28failure. Applications may use Berkeley DB transaction and logging subsystems 29to protect their own data structures and operations from application or 30system failure.</ul> 31<b>Locking:</b><ul compact><li>The locking system provides multiple reader or single writer access to 32objects. The Berkeley DB access methods use the locking system to acquire 33the right to read or write database pages. Applications may use the 34Berkeley DB locking subsystem to support their own locking needs.</ul> 35<br> 36<p>By combining the page cache, transaction, locking, and logging systems, 37Berkeley DB provides the same services found in much larger, more complex and 38more expensive database systems. Berkeley DB supports multiple simultaneous 39readers and writers and guarantees that all changes are recoverable, even 40in the case of a catastrophic hardware failure during a database update.</p> 41<p>Developers may select some or all of the core database services for any 42access method or database. Therefore, it is possible to choose the 43appropriate storage structure and the right degrees of concurrency and 44recoverability for any application. In addition, some of the subsystems 45(for example, the Locking subsystem) can be called separately from the 46Berkeley DB access method. As a result, developers can integrate non-database 47objects into their transactional applications using Berkeley DB.</p> 48<table width="100%"><tr><td><br></td><td align=right><a href="/intro/need.html"><img src="/images/prev.gif" alt="Prev"></a><a href="/toc.html"><img src="/images/ref.gif" alt="Ref"></a><a href="/intro/distrib.html"><img src="/images/next.gif" alt="Next"></a> 49</td></tr></table> 50<p><font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font> 51</body> 52</html> 53