Import BSDDB 4.7.25 (as of svn r89086)
This commit is contained in:
220
docs/collections/tutorial/intro.html
Normal file
220
docs/collections/tutorial/intro.html
Normal file
@@ -0,0 +1,220 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>Chapter 1.
|
||||
Introduction
|
||||
</title>
|
||||
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.62.4" />
|
||||
<link rel="home" href="index.html" title="Berkeley DB Collections Tutorial" />
|
||||
<link rel="up" href="index.html" title="Berkeley DB Collections Tutorial" />
|
||||
<link rel="previous" href="moreinfo.html" title="For More Information" />
|
||||
<link rel="next" href="developing.html" title="Developing a DB Collections Application" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="navheader">
|
||||
<table width="100%" summary="Navigation header">
|
||||
<tr>
|
||||
<th colspan="3" align="center">Chapter 1.
|
||||
Introduction
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="20%" align="left"><a accesskey="p" href="moreinfo.html">Prev</a> </td>
|
||||
<th width="60%" align="center"> </th>
|
||||
<td width="20%" align="right"> <a accesskey="n" href="developing.html">Next</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr />
|
||||
</div>
|
||||
<div class="chapter" lang="en" xml:lang="en">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title"><a id="intro"></a>Chapter 1.
|
||||
Introduction
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="toc">
|
||||
<p>
|
||||
<b>Table of Contents</b>
|
||||
</p>
|
||||
<dl>
|
||||
<dt>
|
||||
<span class="sect1">
|
||||
<a href="intro.html#features">Features</a>
|
||||
</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="sect1">
|
||||
<a href="developing.html">Developing a DB Collections Application</a>
|
||||
</span>
|
||||
</dt>
|
||||
<dt>
|
||||
<span class="sect1">
|
||||
<a href="tutorialintroduction.html">Tutorial Introduction</a>
|
||||
</span>
|
||||
</dt>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
The DB Java Collections API is a Java framework that extends
|
||||
the well known
|
||||
<a href="http://java.sun.com/j2se/1.5.0/docs/guide/collections/" target="_top">Java Collections</a>
|
||||
design pattern such that collections can now be
|
||||
stored, updated and queried in a transactional manner. The
|
||||
DB Java Collections API is a layer on top of DB.
|
||||
</p>
|
||||
<p>
|
||||
Together the DB Java Collections API and Berkeley DB provide an
|
||||
embedded data management solution with all the benefits of a full
|
||||
transactional storage and the simplicity of a well known Java API.
|
||||
Java programmers who need fast, scalable, transactional data
|
||||
management for their projects can quickly adopt and deploy the
|
||||
DB Java Collections API with confidence.
|
||||
</p>
|
||||
<p>
|
||||
This framework was first known as
|
||||
<a href="http://greybird-db.sourceforge.net/" target="_top">Greybird DB</a>
|
||||
written by Mark Hayes. Mark collaborated with us to
|
||||
permanently incorporate his excellent work into our distribution
|
||||
and to support it as an ongoing part of Berkeley DB and Berkeley DB Java
|
||||
Edition. The repository of source code that remains at SourceForge at version 0.9.0 is
|
||||
considered the last version before incorporation and will remain
|
||||
intact but will not be updated to reflect changes made as part of
|
||||
Berkeley DB or Berkeley DB Java Edition.
|
||||
</p>
|
||||
<div class="sect1" lang="en" xml:lang="en">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div>
|
||||
<h2 class="title" style="clear: both"><a id="features"></a>Features</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
<p>
|
||||
<span>Berkeley DB has always provided a Java API which can be roughly
|
||||
described as a map and cursor interface, where the keys and values
|
||||
are represented as byte arrays. This API is a Java (JNI) interface
|
||||
to the C API and it closely modeled the Berkeley DB C API's
|
||||
interface.</span>
|
||||
|
||||
|
||||
|
||||
The DB Java Collections API is a layer on top of
|
||||
|
||||
<span>that
|
||||
thin JNI mapping of the C API to Berkeley DB.</span>
|
||||
|
||||
|
||||
It adds significant new functionality in several ways.
|
||||
</p>
|
||||
<div class="itemizedlist">
|
||||
<ul type="disc">
|
||||
<li>
|
||||
<p>
|
||||
An implementation of the Java Collections interfaces (Map,
|
||||
SortedMap, Set, SortedSet,
|
||||
<span>List</span>
|
||||
and Iterator) is provided.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Transactions are supported using the conventional Java
|
||||
transaction-per-thread model, where the current transaction is
|
||||
implicitly associated with the current thread.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Transaction runner utilities are provided that automatically
|
||||
perform transaction retry and exception handling.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Keys and values are represented as Java objects rather than
|
||||
byte arrays. Bindings are used to map between Java objects and the
|
||||
stored byte arrays.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
The tuple data format is provided as the simplest data
|
||||
representation, and is useful for keys as well as simple compact
|
||||
values.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
The serial data format is provided for storing arbitrary Java
|
||||
objects without writing custom binding code. Java serialization is
|
||||
extended to store the class descriptions separately, making the
|
||||
data records much more compact than with standard Java
|
||||
serialization.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Custom data formats and bindings can be easily added. XML data
|
||||
format and XML bindings could easily be created using this feature,
|
||||
for example.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
The DB Java Collections API insulates the application
|
||||
from minor differences in the use of the Berkeley DB Data Store,
|
||||
Concurrent Data Store, and Transactional Data Store products.
|
||||
This allows for development with one and deployment with another
|
||||
without significant changes to code.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p>
|
||||
Note that the DB Java Collections API does not support caching
|
||||
of programming language objects nor does it keep track of their stored
|
||||
status. This is in contrast to "persistent object" approaches such
|
||||
as those defined by
|
||||
<a href="http://www.odmg.org/" target="_top">ODMG</a>
|
||||
and JDO
|
||||
(<a href="http://www.jcp.org/en/jsr/detail?id=12" target="_top">JSR 12</a>).
|
||||
Such approaches have benefits but also require sophisticated object
|
||||
caching. For simplicity the DB Java Collections API treats data
|
||||
objects by value, not by reference, and does not perform object
|
||||
caching of any kind. Since the DB Java Collections API is a thin
|
||||
layer, its reliability and performance characteristics are roughly
|
||||
equivalent to those of Berkeley DB, and database tuning is
|
||||
accomplished in the same way as for any Berkeley DB database.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="navfooter">
|
||||
<hr />
|
||||
<table width="100%" summary="Navigation footer">
|
||||
<tr>
|
||||
<td width="40%" align="left"><a accesskey="p" href="moreinfo.html">Prev</a> </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="u" href="index.html">Up</a>
|
||||
</td>
|
||||
<td width="40%" align="right"> <a accesskey="n" href="developing.html">Next</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="40%" align="left" valign="top">For More Information </td>
|
||||
<td width="20%" align="center">
|
||||
<a accesskey="h" href="index.html">Home</a>
|
||||
</td>
|
||||
<td width="40%" align="right" valign="top"> Developing a DB Collections Application</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user