You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@db.apache.org by rh...@apache.org on 2012/12/19 19:20:28 UTC

svn commit: r843115 [23/44] - in /websites/production/db/content/derby: ./ binaries/ blogs/ blogs/images/ dev/ docs/ images/ integrate/ integrate/plugin_help/ integrate/plugin_help/images/ logo/ manuals/ papers/ papers/DerbyTut/ releases/ skin/ skin/cs...

Added: websites/production/db/content/derby/papers/MiscPresentations.html
==============================================================================
--- websites/production/db/content/derby/papers/MiscPresentations.html (added)
+++ websites/production/db/content/derby/papers/MiscPresentations.html Wed Dec 19 18:20:21 2012
@@ -0,0 +1,400 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Miscellaneous Derby Presentations</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://db.apache.org/">db</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://db.apache.org/derby"><img class="logoImage" alt="Apache Derby" src="../images/derby-logo-web.png" title="Derby is a zero-admin Java RDBMS"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogoA1">
+<a href="http://db.apache.org"><img class="logoImage" alt="Apache DB Project" src="../images/db-logo-white.png" title="Apache DB creates and maintains database solutions."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../quick_start.html">Quick Start</a>
+</li>
+<li>
+<a class="unselected" href="../derby_downloads.html">Download</a>
+</li>
+<li>
+<a class="unselected" href="../derby_comm.html">Community</a>
+</li>
+<li>
+<a class="unselected" href="../manuals/index.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../blogs/index.html">Resources</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../skin/')" id="menu_1.1Title" class="menutitle">Blogs and Articles About Derby</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#blogs">Blogs</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">Articles</div>
+<div id="menu_1.1.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.3.1', '../skin/')" id="menu_1.1.3.1Title" class="menutitle">Tutorials, Tips and Tuning</div>
+<div id="menu_1.1.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#getstarted">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#features">Features, Hints and Tips</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#security">Security</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#performance">Performance and Tuning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.2', '../skin/')" id="menu_1.1.3.2Title" class="menutitle">Tools and Migration</div>
+<div id="menu_1.1.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#migration">Migration</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.3', '../skin/')" id="menu_1.1.3.3Title" class="menutitle">Applications</div>
+<div id="menu_1.1.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#client">Client</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#middletier">Middle Tier</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#persistence">Persistence</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#scalability">Scalability and Failover</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../skin/')" id="menu_1.2Title" class="menutitle">Integration With Other Products</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#uses">What works with Derby?</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#products">Product Writeups</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Eclipse Plug-ins</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/derby_plugin_info.html">Info</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', '../skin/')" id="menu_1.4Title" class="menutitle">Papers and Presentations</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_1.4.2', '../skin/')" id="menu_1.4.2Title" class="menutitle">Derby Engine</div>
+<div id="menu_1.4.2" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.4.2.1', '../skin/')" id="menu_1.4.2.1Title" class="menutitle">Javadoc</div>
+<div id="menu_1.4.2.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine">Engine</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/language">Language</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/publishedapi">API</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_arch.html">Architecture</a>
+</div>
+<div class="menuitem">
+<a href="../papers/btree_package.html">BTree</a>
+</div>
+<div class="menuitem">
+<a href="../papers/pageformats.html">Disk Page Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_htw.html">How Things Work</a>
+</div>
+<div class="menuitem">
+<a href="../papers/Intersect-design.html">Intersect &amp; Except</a>
+</div>
+<div class="menuitem">
+<a href="../papers/JDBCImplementation.html">JDBC</a>
+</div>
+<div class="menuitem">
+<a href="../papers/logformats.html">Log Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/recovery.html">Logging &amp; Recovery</a>
+</div>
+<div class="menuitem">
+<a href="../papers/optimizer.html">Optimizer</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/package-summary.html#package_description">Type System</a>
+</div>
+<div class="menuitem">
+<a href="../papers/versionupgrade.html">Versioning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.3', '../skin/')" id="menu_1.4.3Title" class="menutitle">Derby Network Client</div>
+<div id="menu_1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyClientSpec.html">Functional Spec</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.4', '../skin/')" id="menu_1.4.4Title" class="menutitle">Derby Tutorial</div>
+<div id="menu_1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyTut/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/install_software.html">Step 1: Install Software</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ij_intro.html">Step 2: ij Basics</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/embedded_intro.html">Step 3: Embedded Derby</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ns_intro.html">Step 4: Derby Network Server</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.5', '../skin/')" id="menu_1.4.5Title" class="menutitle">Presentations</div>
+<div id="menu_1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/ApacheCon.html">ApacheCon</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Victorian+Java+User+Group">Victorian JUG 2008</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#OSCON+2005">OSCON 2005</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Colorado+Software+Summit+2004">Colorado 2004</a>
+</div>
+</div>
+</div>
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<hr>
+<form action="http://www.google.com/search" method="get">
+<input value="db.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="18" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                  <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div class="trail">Font size: 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Miscellaneous Derby Presentations</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Colorado+Software+Summit+2004">Colorado Software Summit 2004</a>
+</li>
+<li>
+<a href="#OSCON+2005">OSCON 2005</a>
+</li>
+<li>
+<a href="#Victorian+Java+User+Group+2008">Victorian Java User Group 2008</a>
+</li>
+</ul>
+</div>
+
+
+<a name="N1000D"></a><a name="Colorado+Software+Summit+2004"></a>
+<h2 class="boxed">Colorado Software Summit 2004</h2>
+<div class="section">
+<p> 
+Dan Debrunner
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200411.mbox/%3c4193C7AC.3080402@debrunners.com%3e">spoke at the Colorado Software Summit</a>.
+His presentation,
+<em>Internals of Derby</em>,
+is available for download
+[<a href="../binaries/ApacheDerbyInternals_1_1.sxi">Open Office</a>]
+[<a href="../binaries/ApacheDerbyInternals_1_1.pdf">PDF</a>].
+</p>
+</div>
+
+
+<a name="N10026"></a><a name="OSCON+2005"></a>
+<h2 class="boxed">OSCON 2005</h2>
+<div class="section">
+<p>
+David van Couvering did a BoF (Birds of a Feather) session 
+at the O'Reilly Open Source Convention (OSCON) in Portland August 2005.
+His presentation,
+<em>Apache Derby Status Update</em>,
+is available for download
+[<a href="../binaries/DerbyBOF-OSCON-2005.pdf">PDF</a>].
+</p>
+<p>
+Dan Scott did a
+<a class="external" href="http://coffeecode.net/archives/16-Apache-Derby-tutorial-OSCON-2005-materials.html"><em>Deep 
+Dive with Apache Derby: Perl, PHP, and Python</em></a> tutorial.
+</p>
+</div>
+
+
+<a name="N1003F"></a><a name="Victorian+Java+User+Group+2008"></a>
+<h2 class="boxed">Victorian Java User Group 2008</h2>
+<div class="section">
+<p>
+Matt Doran
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-user/200809.mbox/%3C48BCDC9F.9030906@papercut.com%3E">
+spoke at the August meeting</a> of the
+<a class="external" href="https://victorianjug.dev.java.net/">Victorian Java User Group</a>
+in Melbourne, Australia. The slides from his presentation,
+<em>Using Apache Derby in the real world</em>, are available for download
+[<a class="external" href="http://www.papercut.com/anonftp/pub/open-source/apache-derby/ApacheDerbyAJUGPresentation.pdf">PDF</a>]
+[<a class="external" href="http://docs.google.com/Present?docid=dcz4c74g_82nr92vgnt&skipauth=true">HTML</a>].
+</p>
+</div>
+
+
+<p>
+
+<em>Last updated: September 2, 2008</em>
+
+</p>
+
+
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2004-2012 Apache Software Foundation</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:derby-user@db.apache.org?subject=Feedback%C2%A0papers/MiscPresentations.html">derby-user@db.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: websites/production/db/content/derby/papers/alloc-page.png
==============================================================================
Binary file - no diff available.

Propchange: websites/production/db/content/derby/papers/alloc-page.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: websites/production/db/content/derby/papers/btree_package.html
==============================================================================
--- websites/production/db/content/derby/papers/btree_package.html (added)
+++ websites/production/db/content/derby/papers/btree_package.html Wed Dec 19 18:20:21 2012
@@ -0,0 +1,443 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<meta name="generator" content="">
+<meta name="" content="">
+<title>org.apache.derby.impl.store.access.btree</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://db.apache.org/">db</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://db.apache.org/derby"><img class="logoImage" alt="Apache Derby" src="../images/derby-logo-web.png" title="Derby is a zero-admin Java RDBMS"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogoA1">
+<a href="http://db.apache.org"><img class="logoImage" alt="Apache DB Project" src="../images/db-logo-white.png" title="Apache DB creates and maintains database solutions."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../quick_start.html">Quick Start</a>
+</li>
+<li>
+<a class="unselected" href="../derby_downloads.html">Download</a>
+</li>
+<li>
+<a class="unselected" href="../derby_comm.html">Community</a>
+</li>
+<li>
+<a class="unselected" href="../manuals/index.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../blogs/index.html">Resources</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../skin/')" id="menu_1.1Title" class="menutitle">Blogs and Articles About Derby</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#blogs">Blogs</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">Articles</div>
+<div id="menu_1.1.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.3.1', '../skin/')" id="menu_1.1.3.1Title" class="menutitle">Tutorials, Tips and Tuning</div>
+<div id="menu_1.1.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#getstarted">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#features">Features, Hints and Tips</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#security">Security</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#performance">Performance and Tuning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.2', '../skin/')" id="menu_1.1.3.2Title" class="menutitle">Tools and Migration</div>
+<div id="menu_1.1.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#migration">Migration</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.3', '../skin/')" id="menu_1.1.3.3Title" class="menutitle">Applications</div>
+<div id="menu_1.1.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#client">Client</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#middletier">Middle Tier</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#persistence">Persistence</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#scalability">Scalability and Failover</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../skin/')" id="menu_1.2Title" class="menutitle">Integration With Other Products</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#uses">What works with Derby?</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#products">Product Writeups</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Eclipse Plug-ins</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/derby_plugin_info.html">Info</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4', '../skin/')" id="menu_selected_1.4Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Papers and Presentations</div>
+<div id="menu_selected_1.4" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../papers/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4.2', '../skin/')" id="menu_selected_1.4.2Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Derby Engine</div>
+<div id="menu_selected_1.4.2" class="selectedmenuitemgroup" style="display: block;">
+<div onclick="SwitchMenu('menu_1.4.2.1', '../skin/')" id="menu_1.4.2.1Title" class="menutitle">Javadoc</div>
+<div id="menu_1.4.2.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine">Engine</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/language">Language</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/publishedapi">API</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_arch.html">Architecture</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">BTree</div>
+</div>
+<div class="menuitem">
+<a href="../papers/pageformats.html">Disk Page Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_htw.html">How Things Work</a>
+</div>
+<div class="menuitem">
+<a href="../papers/Intersect-design.html">Intersect &amp; Except</a>
+</div>
+<div class="menuitem">
+<a href="../papers/JDBCImplementation.html">JDBC</a>
+</div>
+<div class="menuitem">
+<a href="../papers/logformats.html">Log Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/recovery.html">Logging &amp; Recovery</a>
+</div>
+<div class="menuitem">
+<a href="../papers/optimizer.html">Optimizer</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/package-summary.html#package_description">Type System</a>
+</div>
+<div class="menuitem">
+<a href="../papers/versionupgrade.html">Versioning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.3', '../skin/')" id="menu_1.4.3Title" class="menutitle">Derby Network Client</div>
+<div id="menu_1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyClientSpec.html">Functional Spec</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.4', '../skin/')" id="menu_1.4.4Title" class="menutitle">Derby Tutorial</div>
+<div id="menu_1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyTut/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/install_software.html">Step 1: Install Software</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ij_intro.html">Step 2: ij Basics</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/embedded_intro.html">Step 3: Embedded Derby</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ns_intro.html">Step 4: Derby Network Server</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.5', '../skin/')" id="menu_1.4.5Title" class="menutitle">Presentations</div>
+<div id="menu_1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/ApacheCon.html">ApacheCon</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Victorian+Java+User+Group">Victorian JUG 2008</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#OSCON+2005">OSCON 2005</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Colorado+Software+Summit+2004">Colorado 2004</a>
+</div>
+</div>
+</div>
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<hr>
+<form action="http://www.google.com/search" method="get">
+<input value="db.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="18" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                  <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div class="trail">Font size: 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>org.apache.derby.impl.store.access.btree</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Overview">Overview</a>
+</li>
+<li>
+<a href="#High+level+structure+of+the+B%2BTree">High level structure of the B+Tree</a>
+</li>
+<li>
+<a href="#Latching+implementation">Latching implementation</a>
+</li>
+<li>
+<a href="#Locking+and+Isolation+Levels">Locking and Isolation Levels</a>
+</li>
+<li>
+<a href="#BTree+Structure+Modifications">BTree Structure Modifications</a>
+</li>
+<li>
+<a href="#Logical+Key+Deletes">Logical Key Deletes</a>
+</li>
+<li>
+<a href="#Garbage+Collection+of+deleted+keys">Garbage Collection of deleted keys</a>
+<ul class="minitoc">
+<li>
+<a href="#Online+during+BTREE+split">Online during BTREE split</a>
+</li>
+<li>
+<a href="#BTREE+post+commit+work">BTREE post commit work</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Logging+and+Recovery">Logging and Recovery</a>
+</li>
+</ul>
+</div>
+<p>Implements BTree access method, which is the basis for SQL indexes.</p>
+<a name="N1001B"></a><a name="Overview"></a>
+<h2 class="boxed">Overview</h2>
+<div class="section">
+<p>Derby implements secondary SQL indexes as BTrees. The high level features of the BTree implementation are:</p>
+<ol>
+<li>Derby implements the standard B+Tree algorithm, in which all keys are stored in leaf pages, and the upper levels are organized as a redundant index for enabling rapid location of a particular key. See <a class="external" href="http://portal.acm.org/citation.cfm?id=356776"><cite>The Ubiquitous B-Tree, Douglas Comer</cite></a> for a definition of the B+Tree.</li>
+<li>The BTree implementation supports concurrency using page level latches, and recovery using a Write Ahead Log.</li>
+<li>Derby uses data only locking for its logical row level locking.</li>
+<li>Derby supports all four SQL isolation levels, serializable, repeatable read, read committed and read uncommitted.</li>
+<li>Derby uses logical key deletes. This enables it to perform undos during rollbacks and restart recovery as single page operations.</li>
+</ol>
+</div>
+<a name="N10031"></a><a name="High+level+structure+of+the+B%2BTree"></a>
+<h2 class="boxed">High level structure of the B+Tree</h2>
+<div class="section">
+<ul>
+<li>The first row in all pages, branch or leaf, is a control row. In branch pages, this is a <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/store/access/btree/BranchControlRow.html">BranchControlRow</a> and in leaf pages, it is a <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/store/access/btree/LeafControlRow.html">LeafControlRow</a>.</li>
+<li>In addition to the BranchControlRow, branch level pages contain <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/store/access/btree/BranchRow.html">BranchRows</a>.</li>
+<li>At branch level, a page is linked to is left and right siblings, parent, as well as children. The number of child pages is 1 greater than the number of BranchRows in the page. The leftmost child pointer is stored in the BranchControlRow itself. Each BranchRow contains a child pointer as its last column.</li>
+<li>At leaf level also, a page is linked to its left and right siblings, and the parent. In addition to the LeafControlRow, leaf level pages contain <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/sql/execute/IndexRow.html">IndexRows</a>. The last column in an IndexRow is a <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/RowLocation.html">RowLocation</a>.</li>
+<li>IndexRows are generated by the <a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/sql/dictionary/IndexRowGenerator.html">IndexRowGenerator</a>.</li>
+</ul>
+</div>
+<a name="N10058"></a><a name="Latching+implementation"></a>
+<h2 class="boxed">Latching implementation</h2>
+<div class="section">
+<p>Derby uses latches on pages to get exclusive access to the page while reading or writing the page (Derby only uses exclusive latches, no shared latches are used). In order to prevent deadlocks latches requested while holding other latches are always requested top/down and left to right. Btree splits are always left to right. If for any reason the code needs to break this protocol then it will first request the latch NOWAIT and if it can't get the latch it will release all current latches and wait for the latch it is trying to get, and then after obtaining it go about getting the other latches it needs for the particular operation. While traversing down the tree Derby may hold 2 latches: one on parent and one on child. It then continues doing "ladder" latching down the tree releasing the highest node when it has successfully got a new lower node latch. Latches are short term, only held while reading/modifying the page, never held while an I/O is happening. Structure modifi
 cations are all isolated from other operations through the use of latches.</p>
+</div>
+<a name="N1005E"></a><a name="Locking+and+Isolation+Levels"></a>
+<h2 class="boxed">Locking and Isolation Levels</h2>
+<div class="section">
+<p>Derby uses data only locking for its logical row level locking. All isolation level implementation is done using logical locks (Derby does not support non-locking isolation such as multi-versioning).</p>
+<p>In data only locking the key for all locks whether obtained in the BTree or in the base table is the address of the base table row. In the BTree case the address of the base table row (<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/RowLocation.html">RowLocation</a>) is always the last column of the leaf index entry (<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/impl/sql/execute/IndexRow.html">IndexRows</a>).</p>
+<dl>
+<dt>Serializable</dt>
+<dd>Derby uses "previous key" locking to prevent phantoms from being inserted into a range being accessed by a scan. A scan always locks the index row just "previous" to the first entry that satisfies the scan condition and then all index entries going forward until the end of the scan. All row locks are held until end of transaction. Inserts also get previous key locks, which will block if the existing row is locked.</dd>
+<dt>Repeatable Read</dt>
+<dd>Same as serializable except that no previous key locking is done.</dd>
+<dt>Read Committed</dt>
+<dd>Write locks are held until end of transaction. Read locks are released once the query in question no longer needs them.</dd>
+<dt>Read Uncommitted</dt>
+<dd>No row locks are acquired. The code still gets table level intent locks to prevent concurrent DDL during the query.</dd>
+</dl>
+</div>
+<a name="N1007F"></a><a name="BTree+Structure+Modifications"></a>
+<h2 class="boxed">BTree Structure Modifications</h2>
+<div class="section">
+<p>In Derby, SMOs (structure modification operations - ie. page splits), only happen top down. This is not as concurrent as bottom up in <a class="external" href="http://www.almaden.ibm.com/u/mohan/RJ6846.pdf">ARIES/IM</a>, but is simpler. As in ARIES/IM <q>Not more than 2 index pages are held latched simultaneously at anytime. In order to improve concurrency and to avoid deadlocks involving latches, even those latches are not held while waiting for a lock wich is not immediately grantable. No data page latch is held or acquired during an index access. Latch coupling is used while traversing the tree - ie. the latch on a parent page is held while requesting a latch on a child page.</q>
+</p>
+<p>In the case of a simple split, exclusive latch is held on P (parent), and C (child). If there is room in P, then new page C1 (child right) is created, new descriminator is inserted into P, and rows moved to C1. Latches are held on P and C for duration of split, and then released.</p>
+<p>The hard case is when P does not have room for descriminator key. In this case all latches are released, and Derby does a split pass from top to bottom, and will split the internal nodes that do not have room for the decrimator key. Note this may result in more splits than necessary for this particular insert, but the assumption is that the splits will have to happen eventually anyway. After this split pass is done, the search for the insert starts again from top down, but it must once again check for space because it has given up all its latches and some other transaction may have acquired the space in the meantime.</p>
+<p>Optimization is possible to remember C and see if it is right location, and/or use sideway pointers to search right rather than do research of tree.</p>
+</div>
+<a name="N10091"></a><a name="Logical+Key+Deletes"></a>
+<h2 class="boxed">Logical Key Deletes</h2>
+<div class="section">
+<p>In both the BTree and the Heap, deletes are first executed by marking a "deleted" bit. This is to insure space on the page for abort, since row level locking will allow other rows on the page to be modified conncurrently with the transaction executing the delete. The system uses a background daemon to schedule work after commit to reclaim the space of the deleted rows. A row marked deleted can be "purged" if one can obtain a lock on it (if it was an uncommitted delete then the transaction doing the commit would still have an exclusive lock on the row).</p>
+</div>
+<a name="N10097"></a><a name="Garbage+Collection+of+deleted+keys"></a>
+<h2 class="boxed">Garbage Collection of deleted keys</h2>
+<div class="section">
+<p>Since rows are only marked as "deleted", and not physically removed, it is necessary to perform space reclamation on deleted rows.</p>
+<a name="N1009D"></a><a name="Online+during+BTREE+split"></a>
+<h3 class="boxed">Online during BTREE split</h3>
+<p>Whenever there is not enough room on a leaf to do an insert the code attempts to find space on the leaf, by checking if it can reclaim any committed deletes on that leaf. That work only requires the latch on the leaf and NOWAIT row write locks. It is expected that most of the space reclaim done in the BTree goes through this path. Most of this work is done in {@link org.apache.derby.impl.store.access.btree.BTreeController.reclaim_deleted_rows}.</p>
+<a name="N100A3"></a><a name="BTREE+post+commit+work"></a>
+<h3 class="boxed">BTREE post commit work</h3>
+<p>Whenever a delete operation deletes the last row from a leaf page then a BtreePostCommit job is queued to be executed after the transaction which did the delete commits. This work currently requires a table level lock as page merges have not been implemented to be allowed concurrent with other operations. Many DBMSes don't even try to do page merges except when called from some sort of reorg utility. If all rows on page are purged, then the page will move to the free list and perform a merge to the tree.</p>
+<p>It is expected that the normal space reclamation happens with row locks during btree split, which is why not much work has been done to optimize btree post commit path</p>
+</div>
+<a name="N100AB"></a><a name="Logging+and+Recovery"></a>
+<h2 class="boxed">Logging and Recovery</h2>
+<div class="section">
+<p>Derby uses physical redo and logical undo for BTree inserts and deletes. Logical undo is simplified as a result of using logical key deletes. If keys were physically removed during deletes, then the undo of a key delete would have required an insert operation which can potentially lead to page splits at various levels within the tree. Since the key is not physically removed, but only marked as "deleted", undoing a key delete is accomplished easily. However, since the page where the insert or delete should take place may have moved, it may be necessary to search for the page.</p>
+<p>Structure modification operations (SMOs) are handled as independent internal transactions and commit separately from the transaction that initiated the SMO. Once an SMO has been completed successfully, it is not undone, even if the transaction that caused it decides to abort. During restart recovery undo phase, incomplete internal transactions are undone BEFORE any regular transactions. This ensures that the BTrees are structurally consistent before normal undo begins.</p>
+</div>
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2004-2012 Apache Software Foundation</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:derby-user@db.apache.org?subject=Feedback%C2%A0papers/btree_package.html">derby-user@db.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: websites/production/db/content/derby/papers/container-format.png
==============================================================================
Binary file - no diff available.

Propchange: websites/production/db/content/derby/papers/container-format.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: websites/production/db/content/derby/papers/derby_arch.html
==============================================================================
--- websites/production/db/content/derby/papers/derby_arch.html (added)
+++ websites/production/db/content/derby/papers/derby_arch.html Wed Dec 19 18:20:21 2012
@@ -0,0 +1,546 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Derby Engine Architecture Overview</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://db.apache.org/">db</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://db.apache.org/derby"><img class="logoImage" alt="Apache Derby" src="../images/derby-logo-web.png" title="Derby is a zero-admin Java RDBMS"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogoA1">
+<a href="http://db.apache.org"><img class="logoImage" alt="Apache DB Project" src="../images/db-logo-white.png" title="Apache DB creates and maintains database solutions."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../quick_start.html">Quick Start</a>
+</li>
+<li>
+<a class="unselected" href="../derby_downloads.html">Download</a>
+</li>
+<li>
+<a class="unselected" href="../derby_comm.html">Community</a>
+</li>
+<li>
+<a class="unselected" href="../manuals/index.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../blogs/index.html">Resources</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../skin/')" id="menu_1.1Title" class="menutitle">Blogs and Articles About Derby</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#blogs">Blogs</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">Articles</div>
+<div id="menu_1.1.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.3.1', '../skin/')" id="menu_1.1.3.1Title" class="menutitle">Tutorials, Tips and Tuning</div>
+<div id="menu_1.1.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#getstarted">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#features">Features, Hints and Tips</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#security">Security</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#performance">Performance and Tuning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.2', '../skin/')" id="menu_1.1.3.2Title" class="menutitle">Tools and Migration</div>
+<div id="menu_1.1.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#migration">Migration</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.3', '../skin/')" id="menu_1.1.3.3Title" class="menutitle">Applications</div>
+<div id="menu_1.1.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#client">Client</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#middletier">Middle Tier</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#persistence">Persistence</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#scalability">Scalability and Failover</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../skin/')" id="menu_1.2Title" class="menutitle">Integration With Other Products</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#uses">What works with Derby?</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#products">Product Writeups</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Eclipse Plug-ins</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/derby_plugin_info.html">Info</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4', '../skin/')" id="menu_selected_1.4Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Papers and Presentations</div>
+<div id="menu_selected_1.4" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../papers/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4.2', '../skin/')" id="menu_selected_1.4.2Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Derby Engine</div>
+<div id="menu_selected_1.4.2" class="selectedmenuitemgroup" style="display: block;">
+<div onclick="SwitchMenu('menu_1.4.2.1', '../skin/')" id="menu_1.4.2.1Title" class="menutitle">Javadoc</div>
+<div id="menu_1.4.2.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine">Engine</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/language">Language</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/publishedapi">API</a>
+</div>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Architecture</div>
+</div>
+<div class="menuitem">
+<a href="../papers/btree_package.html">BTree</a>
+</div>
+<div class="menuitem">
+<a href="../papers/pageformats.html">Disk Page Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_htw.html">How Things Work</a>
+</div>
+<div class="menuitem">
+<a href="../papers/Intersect-design.html">Intersect &amp; Except</a>
+</div>
+<div class="menuitem">
+<a href="../papers/JDBCImplementation.html">JDBC</a>
+</div>
+<div class="menuitem">
+<a href="../papers/logformats.html">Log Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/recovery.html">Logging &amp; Recovery</a>
+</div>
+<div class="menuitem">
+<a href="../papers/optimizer.html">Optimizer</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/package-summary.html#package_description">Type System</a>
+</div>
+<div class="menuitem">
+<a href="../papers/versionupgrade.html">Versioning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.3', '../skin/')" id="menu_1.4.3Title" class="menutitle">Derby Network Client</div>
+<div id="menu_1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyClientSpec.html">Functional Spec</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.4', '../skin/')" id="menu_1.4.4Title" class="menutitle">Derby Tutorial</div>
+<div id="menu_1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyTut/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/install_software.html">Step 1: Install Software</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ij_intro.html">Step 2: ij Basics</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/embedded_intro.html">Step 3: Embedded Derby</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ns_intro.html">Step 4: Derby Network Server</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.5', '../skin/')" id="menu_1.4.5Title" class="menutitle">Presentations</div>
+<div id="menu_1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/ApacheCon.html">ApacheCon</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Victorian+Java+User+Group">Victorian JUG 2008</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#OSCON+2005">OSCON 2005</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Colorado+Software+Summit+2004">Colorado 2004</a>
+</div>
+</div>
+</div>
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<hr>
+<form action="http://www.google.com/search" method="get">
+<input value="db.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="18" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                  <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div class="trail">Font size: 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>Derby Engine Architecture Overview</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Module+View">Module View</a>
+<ul class="minitoc">
+<li>
+<a href="#Monitor">Monitor</a>
+</li>
+<li>
+<a href="#Modules">Modules</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Layer%2FBox+View">Layer/Box View</a>
+<ul class="minitoc">
+<li>
+<a href="#JDBC">JDBC</a>
+</li>
+<li>
+<a href="#SQL">SQL</a>
+</li>
+<li>
+<a href="#Store">Store</a>
+</li>
+<li>
+<a href="#Services">Services</a>
+</li>
+</ul>
+</li>
+</ul>
+</div> 
+
+
+<p>
+
+<em>
+This paper summarizes a discussion 
+about Derby engine architecture
+on the <a href="../derby_mail.html">derby-dev@db.apache.org</a> list
+that started on
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200408.mbox/%3c411D21E6.5030901@debrunners.com%3e">August 14, 2004</a>.
+Please post any corrections or additional information to the
+<a href="../derby_mail.html">derby-dev@db.apache.org</a> list.
+</em>
+
+</p>
+
+
+<a name="N1001F"></a><a name="Module+View"></a>
+<h2 class="boxed">Module View</h2>
+<div class="section">
+<p>
+A running system is comprised of a monitor and a collection of modules.
+</p>
+<a name="N10028"></a><a name="Monitor"></a>
+<h3 class="boxed">Monitor</h3>
+<p>
+The monitor is code that maps module requests,
+which are described in the next section,
+to implementations based
+upon the request and the environment. E.g. with JDK 1.3 the internal
+request for a JDBC driver the monitor selects Derby's JDBC 2.0
+implementation, while in JDK 1.4 the driver is the JDBC 3.0
+implementation. This allows Derby to present a single JDBC driver to the
+application regardless of JDK and internally the correct driver is loaded.
+</p>
+<a name="N10032"></a><a name="Modules"></a>
+<h3 class="boxed">Modules</h3>
+<p>
+A module is a set of discrete functionality, such as a lock manager,
+JDBC driver, indexing method etc. A module's interface is typically
+defined by a set of Java interfaces, e.g. the java.sql interfaces define
+a interface for a JDBC driver. All callers of a module do so purely
+through its interface to separate api from implementation. A module's
+implementation is a set of classes that implement the required behavior
+and interfaces. Thus a module implementation can change or be replaced
+with a different implementation without affecting the callers' code.
+</p>
+<p>
+Modules are either system wide (shared), e.g. error logging, or
+per-service with a service corresponding to a database, e.g. a lock
+manager would be a module in a service (database)
+</p>
+<p>
+This architecture allows different modules to be loaded depending on the
+environment and in the past also supported different product
+configurations out of the same code base.
+</p>
+</div>
+
+
+<a name="N10043"></a><a name="Layer%2FBox+View"></a>
+<h2 class="boxed">Layer/Box View</h2>
+<div class="section">
+<p>
+There are four main code areas: JDBC, SQL, Store and Services.
+</p>
+<a name="N1004C"></a><a name="JDBC"></a>
+<h3 class="boxed">JDBC</h3>
+<p>
+JDBC presents the only api to Derby to applications and consists of
+implementations of the java.sql and javax.sql classes for JDBC 2.0 and
+3.0. Applications use Derby solely through its implementations of the
+top-level JDBC interfaces (Driver, DataSource, ConnectionPoolDataSource
+and XADataSource) and the remaining  JDBC interfaces. E.g. applications
+can only use a Derby prepared statement through
+java.sql.PreparedStatement and not some class specific to Derby with
+additional methods.
+</p>
+<p>
+The JDBC layer sits on top of the SQL layer.
+</p>
+<a name="N10059"></a><a name="SQL"></a>
+<h3 class="boxed">SQL</h3>
+<p>
+The SQL layer is split into two main logical areas, compilation and
+execution.
+</p>
+<p>
+SQL compilation is a five step process:
+</p>
+<ol>
+   
+<li> parse using a parser generated by Javacc, results in a tree of
+          query nodes</li>
+   
+<li>bind to resolve all objects (e.g. table names)</li>
+   
+<li>optimize to determine the best access path</li>
+   
+<li>generation of a Java class (directly to byte code)  to represent
+       the statement plan</li>
+   
+<li>loading of the class and creation of an instance to represent that
+connection's state of the query</li>
+
+</ol>
+<p>
+The generated statement plan is cached and can be shared by multiple
+connections. DDL statements (e.g. CREATE TABLE) use a common statement
+plan to avoid generation of a Java class file.
+</p>
+<p>
+This implementation was driven by the original goal to have a small footprint.
+Using the JVM's interepter was thought 
+to be less code than having an internal one. 
+It does mean that the first couple of times the statement plan is executed,
+it would be interpreted.
+After a number of executions, the Just-In-Time (JIT) compiler will decide
+to compile it into native code.
+Thus, running performance tests will see a boost after a
+number of iterations. In addition, calling into Java user-supplied
+methods (functions and procedures) is direct, rather than through reflection.
+</p>
+<p>
+SQL Execution is calling execute methods on the instance of the
+generated class that return a result set object. This result set is a
+Derby ResultSet class, not a JDBC one. The JDBC layer presents the Derby
+ResultSet as a JDBC one to the application. For a simple table scan the
+query would consist of a single result set object representing the table
+scan. For a more complex query the top-level result set "hides" a tree
+of result sets that correspond to the correct query. E.g. a
+project-restrict result set on top of a join result set that is joining
+a table scan result set on T1 with a index scan on table T2.
+DML (INSERT/UPDATE/DELETE) are handled the same way, with a ResultSet
+that performs all of its work in its open method and returns an update
+count.
+</p>
+<p>
+These result set objects interface with the Store layer to fetch rows
+from tables, indexes or perform sorts.
+</p>
+<a name="N10084"></a><a name="Store"></a>
+<h3 class="boxed">Store</h3>
+<p>
+The Store layer is split into two main areas, access and raw.
+The access layer presents a conglomerate (table or index)/row based
+interface to the SQL layer. It handles table scans, index scans, index
+lookups, indexing, sorting, locking policies, transactions, isolation
+levels.
+</p>
+<p>
+The access layer sits on top of the raw store which provides the raw
+storage of rows in pages in files, transaction logging, transaction
+management. JCE encryption is plugged in here at the page level. The raw
+store works with a pluggable file system api that allows the data files
+to be stored in the Java filesystem, jar files, jar files in the
+classpath, or any other mechanism.
+</p>
+<a name="N10091"></a><a name="Services"></a>
+<h3 class="boxed">Services</h3>
+<p>
+Services are utility modules such as lock management, cache management
+(single cache module used to cache many different types from pages to
+string translations), error logging etc.
+</p>
+<p>
+The services/cache component
+is a general purpose caching mechanism that simply
+caches objects that implement the Cacheable interface. It is used by the
+store for buffer caching, but it is also used to cache compiled plans
+for SQL statements, open containers and their file descriptors, string
+conversions, table descriptors and maybe more.
+</p>
+<p>
+The interface/implementation split ensures that the cache algorithm is
+not known by the users of the cache and can be changed with affecting
+them. The currrent algorithm is a "clock or ring" based algorithm.
+</p>
+</div>
+
+
+<p>
+<em>Last Updated: September 10, 2004</em>
+</p>
+
+
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2004-2012 Apache Software Foundation</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:derby-user@db.apache.org?subject=Feedback%C2%A0papers/derby_arch.html">derby-user@db.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: websites/production/db/content/derby/papers/derby_htw.html
==============================================================================
--- websites/production/db/content/derby/papers/derby_htw.html (added)
+++ websites/production/db/content/derby/papers/derby_htw.html Wed Dec 19 18:20:21 2012
@@ -0,0 +1,544 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="pelt">
+<title>How Things Work</title>
+<link type="text/css" href="../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../skin/profile.css" rel="stylesheet">
+<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://db.apache.org/">db</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://db.apache.org/derby"><img class="logoImage" alt="Apache Derby" src="../images/derby-logo-web.png" title="Derby is a zero-admin Java RDBMS"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogoA1">
+<a href="http://db.apache.org"><img class="logoImage" alt="Apache DB Project" src="../images/db-logo-white.png" title="Apache DB creates and maintains database solutions."></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li>
+<a class="unselected" href="../index.html">Home</a>
+</li>
+<li>
+<a class="unselected" href="../quick_start.html">Quick Start</a>
+</li>
+<li>
+<a class="unselected" href="../derby_downloads.html">Download</a>
+</li>
+<li>
+<a class="unselected" href="../derby_comm.html">Community</a>
+</li>
+<li>
+<a class="unselected" href="../manuals/index.html">Documentation</a>
+</li>
+<li class="current">
+<a class="selected" href="../blogs/index.html">Resources</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_1.1', '../skin/')" id="menu_1.1Title" class="menutitle">Blogs and Articles About Derby</div>
+<div id="menu_1.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#blogs">Blogs</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">Articles</div>
+<div id="menu_1.1.3" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.3.1', '../skin/')" id="menu_1.1.3.1Title" class="menutitle">Tutorials, Tips and Tuning</div>
+<div id="menu_1.1.3.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#getstarted">Getting Started</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#features">Features, Hints and Tips</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#security">Security</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#performance">Performance and Tuning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.2', '../skin/')" id="menu_1.1.3.2Title" class="menutitle">Tools and Migration</div>
+<div id="menu_1.1.3.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#migration">Migration</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.3.3', '../skin/')" id="menu_1.1.3.3Title" class="menutitle">Applications</div>
+<div id="menu_1.1.3.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../blogs/index.html#client">Client</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#middletier">Middle Tier</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#persistence">Persistence</a>
+</div>
+<div class="menuitem">
+<a href="../blogs/index.html#scalability">Scalability and Failover</a>
+</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', '../skin/')" id="menu_1.2Title" class="menutitle">Integration With Other Products</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#uses">What works with Derby?</a>
+</div>
+<div class="menuitem">
+<a href="../integrate/index.html#products">Product Writeups</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', '../skin/')" id="menu_1.3Title" class="menutitle">Eclipse Plug-ins</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../integrate/derby_plugin_info.html">Info</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4', '../skin/')" id="menu_selected_1.4Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Papers and Presentations</div>
+<div id="menu_selected_1.4" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../papers/index.html">Overview</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.4.2', '../skin/')" id="menu_selected_1.4.2Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Derby Engine</div>
+<div id="menu_selected_1.4.2" class="selectedmenuitemgroup" style="display: block;">
+<div onclick="SwitchMenu('menu_1.4.2.1', '../skin/')" id="menu_1.4.2.1Title" class="menutitle">Javadoc</div>
+<div id="menu_1.4.2.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine">Engine</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/language">Language</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/tools">Tools</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/publishedapi">API</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../papers/derby_arch.html">Architecture</a>
+</div>
+<div class="menuitem">
+<a href="../papers/btree_package.html">BTree</a>
+</div>
+<div class="menuitem">
+<a href="../papers/pageformats.html">Disk Page Format</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">How Things Work</div>
+</div>
+<div class="menuitem">
+<a href="../papers/Intersect-design.html">Intersect &amp; Except</a>
+</div>
+<div class="menuitem">
+<a href="../papers/JDBCImplementation.html">JDBC</a>
+</div>
+<div class="menuitem">
+<a href="../papers/logformats.html">Log Format</a>
+</div>
+<div class="menuitem">
+<a href="../papers/recovery.html">Logging &amp; Recovery</a>
+</div>
+<div class="menuitem">
+<a href="../papers/optimizer.html">Optimizer</a>
+</div>
+<div class="menuitem">
+<a href="http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/types/package-summary.html#package_description">Type System</a>
+</div>
+<div class="menuitem">
+<a href="../papers/versionupgrade.html">Versioning</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.3', '../skin/')" id="menu_1.4.3Title" class="menutitle">Derby Network Client</div>
+<div id="menu_1.4.3" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyClientSpec.html">Functional Spec</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.4', '../skin/')" id="menu_1.4.4Title" class="menutitle">Derby Tutorial</div>
+<div id="menu_1.4.4" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/DerbyTut/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/install_software.html">Step 1: Install Software</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ij_intro.html">Step 2: ij Basics</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/embedded_intro.html">Step 3: Embedded Derby</a>
+</div>
+<div class="menuitem">
+<a href="../papers/DerbyTut/ns_intro.html">Step 4: Derby Network Server</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4.5', '../skin/')" id="menu_1.4.5Title" class="menutitle">Presentations</div>
+<div id="menu_1.4.5" class="menuitemgroup">
+<div class="menuitem">
+<a href="../papers/ApacheCon.html">ApacheCon</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Victorian+Java+User+Group">Victorian JUG 2008</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#OSCON+2005">OSCON 2005</a>
+</div>
+<div class="menuitem">
+<a href="../papers/MiscPresentations.html#Colorado+Software+Summit+2004">Colorado 2004</a>
+</div>
+</div>
+</div>
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<hr>
+<form action="http://www.google.com/search" method="get">
+<input value="db.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="18" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                  <input name="Search" value="Search" type="submit">
+</form>
+</div>
+<!--+
+    |end search
+    +-->
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div class="trail">Font size: 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>How Things Work</h1> 
+
+
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content">
+This page is ancient, predating the creating of the
+<a class="external" href="http://wiki.apache.org/db-derby">Derby Wiki</a>.
+The Wiki <a class="external" href="http://wiki.apache.org/db-derby/HowItWorks">HowItWorks</a>
+page has more current pointers to information.
+</div>
+</div>
+
+<p>
+For a developer just getting started with Derby a logical first step 
+is to browse the <a href="../derby_mail.html">derby-dev@db.apache.org</a> 
+mail archive;
+however, that becomes more daunting as each month passes and the archive grows.
+This page hopes to help new developers get started more quickly by providing
+a partial list of pointers to derby implementation details
+that have been posted to the mail lists.
+The focus is on history, how things work and how they might change, so
+new developers can more quickly understand technical issues and participate
+in discussions.
+</p>
+
+
+<p>
+Since a given thread might discuss multiple topics,
+most often the links below are to 
+just the message that appears most relevant or that visibly
+identifies the topic.
+Once you pull up a message,
+click on the "thread" option to look at the broader context surrounding
+that message.
+Also, to retrieve all discussions for a given topic,
+search the <a href="../derby_mail.html">Derby mail list archives</a> directly.
+The list below is just a starting point.
+</p>
+
+
+<p>
+Please post corrections/additions to the 
+<a href="../derby_mail.html">derby-dev</a> list.
+</p>
+
+
+<ul>
+  
+<li> BTree: 
+     <ul>
+     
+<li> 
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200501.mbox/%3c41F159EF.90008@sbcglobal.net%3e">Btree questions (January 21, 2005)</a>
+     
+</li>
+     
+</ul>
+  
+</li>
+
+  
+<li> Connection Pooling:
+     <ul>
+     
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200501.mbox/%3c41F280A6.2060600@debrunners.com%3e">Derby-130 fix (January 22, 2005)</a>
+</li>
+     
+</ul>
+  
+</li>
+
+  
+<li> Diagnostic Tables:
+     <ul>
+     
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-user/200412.mbox/%3c41AF57AA.5040104@debrunners.com%3e">Description of virtual tables (December 2, 2005)</a>
+</li>
+     
+</ul>
+  
+</li>
+
+  
+<li>Embedded Architecture:
+      <ul>
+      
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200408.mbox/%3c411D21E6.5030901@debrunners.com%3e">Quick Overview (August 13, 2004)</a>
+</li>
+      
+<li>Thread summarized in the 
+          <a href="derby_arch.html">Derby Engine Architecture Overview</a>
+	  page.</li>
+      
+</ul>
+  
+</li>
+
+  
+<li> Joins: 
+  <ul>
+     
+<li> 
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c41B9F482.4020900@sbcglobal.net%3e">Hash joins (December 10, 2005)</a>
+</li>
+     
+<li> 
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3cswazoo$205.178.43.80$.6.0.0.22.2.20041220195222.0325f148@pop.rcn.com%3e">Join Strategies (December 20, 2004)</a>
+</li>
+  
+</ul>
+  
+</li>
+  
+<li> JSR169 Support:
+  <ul>
+      
+<li> 
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200501.mbox/%3c41F141B1.901@debrunners.com%3e">DataValueFactory (January 21, 2005)</a>
+</li>
+      
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c41C07CBE.4030201@debrunners.com%3e">Functional spec and design notes 
+       (December 15, 2005)</a>
+</li>
+      
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200411.mbox/%3c41AB928C.1070007@wiu.edu%3e">Status 
+       (November 29, 2005)</a> 
+</li>
+  
+</ul>
+  
+</li>
+  
+<li> Limits: 
+  <ul>
+  
+<li>
+     
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c41B896F3.8030605@Sourcery.Org%3e">Where limits are coded (December 9, 2004)</a>
+  
+</li>
+  
+</ul>
+  
+</li>
+  
+<li>Memory Usage:
+  <ul>
+     
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c41B9EB3C.4050109@sbcglobal.net%3e">Query usage (December 10, 2004)</a>
+</li>
+  
+</ul>
+  
+</li>
+
+  
+<li>XA Transactions:
+  <ul>
+  
+<li>
+     
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200410.mbox/%3c418275D9.3060801@sbcglobal.net%3e">Functional description for Network Server XA Support
+      (October 29, 2004)</a> 
+  
+</li>
+  
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200409.mbox/%3c414C4B0D.AD299E29@Remulak.Net%3e">Background info (September 18, 2004)</a>
+</li>
+  
+</ul>
+
+  
+</li>
+
+  
+<li>Optimizer:
+  <ul>
+     
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c41B9E687.7080304@sbcglobal.net%3e">Costing (December 10, 2005)</a>
+</li>
+  
+</ul>
+  
+</li>
+  
+<li> SQL Parser: 
+      <ul>
+      
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-dev/200412.mbox/%3c6.0.0.22.2.20041227112606.02c5d5a0@pop.rcn.com%3e">SQLParser.java (December 27, 2004)</a>
+</li>
+      
+<li>
+<a class="external" href="http://mail-archives.apache.org/mod_mbox/db-derby-user/200501.mbox/%3c41EF4326.5090103@Sourcery.Org%3e">Derby SQL Parser (January 19, 2005)</a> 
+</li>
+      
+</ul>
+   
+</li>
+
+</ul>
+
+
+<p>
+<em>Last Updated: February 9, 2005</em>
+</p>
+
+
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2004-2012 Apache Software Foundation</div>
+<div id="feedback">
+    Send feedback about the website to:
+  <a id="feedbackto" href="mailto:derby-user@db.apache.org?subject=Feedback%C2%A0papers/derby_htw.html">derby-user@db.apache.org</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>