directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From elecha...@apache.org
Subject svn commit: r1556907 - in /directory/site/trunk/content/mavibot: user-guide.mdtext user-guide/7.3-serializations.mdtext user-guide/7.4-updates.mdtext
Date Thu, 09 Jan 2014 18:38:38 GMT
Author: elecharny
Date: Thu Jan  9 18:38:37 2014
New Revision: 1556907

URL: http://svn.apache.org/r1556907
Log:
Added some pages exlaining the modifications in the mavibot file

Added:
    directory/site/trunk/content/mavibot/user-guide/7.4-updates.mdtext
Modified:
    directory/site/trunk/content/mavibot/user-guide.mdtext
    directory/site/trunk/content/mavibot/user-guide/7.3-serializations.mdtext

Modified: directory/site/trunk/content/mavibot/user-guide.mdtext
URL: http://svn.apache.org/viewvc/directory/site/trunk/content/mavibot/user-guide.mdtext?rev=1556907&r1=1556906&r2=1556907&view=diff
==============================================================================
--- directory/site/trunk/content/mavibot/user-guide.mdtext (original)
+++ directory/site/trunk/content/mavibot/user-guide.mdtext Thu Jan  9 18:38:37 2014
@@ -22,7 +22,7 @@ Notice: Licensed to the Apache Software 
 **Work in progress**
 </DIV>
 
-This user guide is about the Mavibot project developed at the Apache Software Foundation.
We expect this project to be a replacement for **JDBM** that is currently used in Apache Directory
Server, and also to be a reliable **MVCC BTree** implementation that can be used by any other
project.
+This user guide is about the Mavibot project developed at the Apache Software Foundation.
We expect this project to be a replacement for **JDBM** that is currently used in Apache Directory
Server, and also to be a reliable **MVCC B-tree** implementation that can be used by any other
project.
 
 ## About this guide
 
@@ -40,17 +40,17 @@ We are quite interested to improve the c
 ### Table of contents
 
 * [1 - Introduction](user-guide/1-introduction.html)
-    * [1.1 - BTree basics](user-guide/1.1-btree-basics.html)
-*  [2 - BTree types](user-guide/2-btree-types.html)
+    * [1.1 - B-tree basics](user-guide/1.1-btree-basics.html)
+*  [2 - B-tree Flavors](user-guide/2-btree-types.html)
     * In-Memory
     * Persistent
     * Managed
-*  [3 - BTree management](user-guide/3-btree-management.html)
+*  [3 - Mavibot B-tree management](user-guide/3-btree-management.html)
     * creation
     * close
     * flush
     * load
-*  [4 - BTree operations](user-guide/4-btree-operations.html)
+*  [4 - Mavibot B-tree operations](user-guide/4-btree-operations.html)
     * browse
     * contains
     * delete
@@ -60,7 +60,7 @@ We are quite interested to improve the c
     * insert
     * getRevision
 
-*  [5 - BTree information](user-guide/5-btree-informations.html)
+*  [5 - Mavibot B-tree information](user-guide/5-btree-informations.html)
     * getComparator
     * getFile
     * getJournal
@@ -69,7 +69,7 @@ We are quite interested to improve the c
     * isInMemory
     * isPersistent
 
-*  [6 - BTree configuration](user-guide/6-btree-configuration.html)
+*  [6 - Mavibot B-tree configuration](user-guide/6-btree-configuration.html)
     * getKeySerializer
     * getKeySerializerFQCN
     * setKeySerializer
@@ -85,7 +85,8 @@ We are quite interested to improve the c
     * getWriteBufferSize
     * setWriteBufferSize
 
-* [7 - BTree internals](user-guide/7-btree-internals.html)
+* [7 - Mavibot internals](user-guide/7-btree-internals.html)
     * [7.1 - Logical Structure](user-guide/7.1-logical-structure.html)
     * [7.2 - Physical Storage](user-guide/7.2-physical-storage.html)
     * [7.3 - Serializations](user-guide/7.3-serializations.html)
+    * [7.4 - Updates](user-guide/7.4-updates.html)

Modified: directory/site/trunk/content/mavibot/user-guide/7.3-serializations.mdtext
URL: http://svn.apache.org/viewvc/directory/site/trunk/content/mavibot/user-guide/7.3-serializations.mdtext?rev=1556907&r1=1556906&r2=1556907&view=diff
==============================================================================
--- directory/site/trunk/content/mavibot/user-guide/7.3-serializations.mdtext (original)
+++ directory/site/trunk/content/mavibot/user-guide/7.3-serializations.mdtext Thu Jan  9 18:38:37
2014
@@ -3,6 +3,8 @@ NavUp: 7-btree-internals.html
 NavUpText: 7 - Mavibot Internals
 NavPrev: 7.2-physical-storage.html
 NavPrevText: 7.2 - Physical storage
+NavNext: 7.4-updates.html
+NavNextText: 7.4 - Updates
 Notice: Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information

Added: directory/site/trunk/content/mavibot/user-guide/7.4-updates.mdtext
URL: http://svn.apache.org/viewvc/directory/site/trunk/content/mavibot/user-guide/7.4-updates.mdtext?rev=1556907&view=auto
==============================================================================
--- directory/site/trunk/content/mavibot/user-guide/7.4-updates.mdtext (added)
+++ directory/site/trunk/content/mavibot/user-guide/7.4-updates.mdtext Thu Jan  9 18:38:37
2014
@@ -0,0 +1,53 @@
+Title: 7.4 - Updates
+NavUp: 7-btree-internals.html
+NavUpText: 7 - Mavibot Internals
+NavPrev: 7.2-physical-storage.html
+NavPrevText: 7.2 - Physical storage
+Notice: Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+    .
+    http://www.apache.org/licenses/LICENSE-2.0
+    .
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+# 7.4 - Updates
+
+The update operations on a **b-tree** will modify the internal structure in many ways. We
will expsoe the evolution of the **mavibot** file when dealing with the addition of a new
**b-tree** and the insertion of a new calue into it.
+
+Note : we don't show what's happening to the **CopiedPages b-tree** here.
+
+## Initial state before the addition of a b-tree
+
+Here is the content of the *mavibot.db* file before we add any **b-tree** into it :
+
+![Initial state](images/initial-state.png)
+
+As we can see, we just have a *RMHeader* pointing to the management *Btree of Btrees*. nothing
else.
+
+## Addition of a b-tree
+
+Now, here is the file content when we have added a new **b-tree** :
+
+![B-tree test added](images/btree-test-added.png)
+
+Here, the *RMHeader* is pointing to a new revision of the management *Btree of Btrees*, which
itself contains a reference to the *test* **b-tree** in its first revision. At this point,
the old *Btree of Btrees* header and page can be freed and moved into the *free pages list*.
+
+## Addition of an element in the test b-tree
+
+Let's go a step further : we now add an element in the *test* **b-tree**. This again will
impact the *test* **b-tree*, but also the *Btree of Btrees* and the *RMHeader* as shown in
teh following picture :
+
+![V1 added in test b-tree](images/v1-added-in-test.png)
+
+The *RMHeader* is pointing to the second revision of the **Btree of Btrees** header, and
a new revision of the *test* **b-tree** is stored in the root page of the **Btree of Btrees**.
The *test* **b-tree**, which header has been copied, is now containing the **V1** value, but
we still have the first revision of the *test* **b-tree** present in the file and referenced
by the *Btree of Btrees*, as some thread can use it. 
+
+We will be able to free the pages associated with the revision 1 of the *test* **b-tree**
when no more thread will use this revision. The old version of the *Btree of Btrees* can be
freed too.



Mime
View raw message