Author: buildbot Date: Fri Sep 20 17:45:19 2013 New Revision: 879188 Log: Staging update by buildbot for directory Added: websites/staging/directory/trunk/content/mavibot/user-guide/ websites/staging/directory/trunk/content/mavibot/user-guide/1-introduction.html websites/staging/directory/trunk/content/mavibot/user-guide/2-internals.html websites/staging/directory/trunk/content/mavibot/user-guide/2.1-file-format.html websites/staging/directory/trunk/content/mavibot/user-guide/images/ websites/staging/directory/trunk/content/mavibot/user-guide/images/PageIOLogical.png (with props) Modified: websites/staging/directory/trunk/content/ (props changed) Propchange: websites/staging/directory/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Fri Sep 20 17:45:19 2013 @@ -1 +1 @@ -1523001 +1525066 Added: websites/staging/directory/trunk/content/mavibot/user-guide/1-introduction.html ============================================================================== --- websites/staging/directory/trunk/content/mavibot/user-guide/1-introduction.html (added) +++ websites/staging/directory/trunk/content/mavibot/user-guide/1-introduction.html Fri Sep 20 17:45:19 2013 @@ -0,0 +1,187 @@ + + + + + 1 - Introduction — Apache Directory + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ + + + + +

1 - Introduction

+

This Mavibot Guide goal is to provide some clue for any developer wanting to use Mavibot.

+

It also gives some insights about how Mavibot is built and how it works.

+

We hope it will be enough for you to quickly get started, but in any case, if you feel like improving this document, feel free to post your suggestion to the Apache Directory mailing list : any contribution is welcomed !

+

Contents

+
    +
  • [1.1 - .html)
  • +
+ + + + + +
+
+
+ +
+ + Added: websites/staging/directory/trunk/content/mavibot/user-guide/2-internals.html ============================================================================== --- websites/staging/directory/trunk/content/mavibot/user-guide/2-internals.html (added) +++ websites/staging/directory/trunk/content/mavibot/user-guide/2-internals.html Fri Sep 20 17:45:19 2013 @@ -0,0 +1,187 @@ + + + + + 1 - Introduction — Apache Directory + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ + + + + +

1 - Introduction

+

This Mavibot Guide goal is to provide some clue for any developer wanting to use Mavibot.

+

It also gives some insights about how Mavibot is built and how it works.

+

We hope it will be enough for you to quickly get started, but in any case, if you feel like improving this document, feel free to post your suggestion to the Apache Directory mailing list : any contribution is welcomed !

+

Contents

+
    +
  • [1.1 - .html)
  • +
+ + + + + +
+
+
+ +
+ + Added: websites/staging/directory/trunk/content/mavibot/user-guide/2.1-file-format.html ============================================================================== --- websites/staging/directory/trunk/content/mavibot/user-guide/2.1-file-format.html (added) +++ websites/staging/directory/trunk/content/mavibot/user-guide/2.1-file-format.html Fri Sep 20 17:45:19 2013 @@ -0,0 +1,195 @@ + + + + + 2.1 - File Format — Apache Directory + + + + + + + + + + + + +
+ +
+
+ + + +
+
+ + + + + +

2.1 - File format

+

When associated with a RecordManager, Mavibot stores all the Btrees in one single file, which is split in many physical pages, all having the same size.

+
+

Note page size +Currently, the choice was to use one single size for all the pages, regardless the data we store into them. The rationnal is to +get close to the OS page size (frequently 512 bytes or 4096 bytes). This is not necessarily the best choice though, let's say +it's something we might want to change later.

+
+

General file structure

+

The file we use to store the data is a plain binary file, used to store all the BTrees. We can store many btrees in one single file.

+

This file is considered as a fileSystem, with fixed size 'pages' (a page is an array of bytes). The page size is arbitrary fixed when teh RecordManager is created, and we will store every logical data n those physical pages, which will require to spread the logical data in many pages in most of the cases.

+

PageIO

+

Let's first introduce the PageIO, which is used to store the data on disk.

+

A PageIO contains some raw data. As we have to map some logical data that may be wider than a physical fixed size PageIO, we use potentially more than one PageIO to store the data, and we link the PageIOs alltogether.

+

Each PageIO has a height bytes pointer at the beginning, pointing to the next PageIO (or to nothing, if there is no more PageIO in the chain), plus an extra 4 bytes on the first PageIO to define the number of bytes stored in the chain of PageIO. Here is the mapping between a logical page and some PageIOs :

+

PageIO mapping

+ + + + + +
+
+
+ +
+ + Added: websites/staging/directory/trunk/content/mavibot/user-guide/images/PageIOLogical.png ============================================================================== Binary file - no diff available. Propchange: websites/staging/directory/trunk/content/mavibot/user-guide/images/PageIOLogical.png ------------------------------------------------------------------------------ svn:mime-type = image/png