You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by am...@apache.org on 2015/09/02 06:52:05 UTC

svn commit: r1700705 - in /jackrabbit/site/live/oak/docs: osgi_config.html plugins/blobstore.html

Author: amitj
Date: Wed Sep  2 04:52:05 2015
New Revision: 1700705

URL: http://svn.apache.org/r1700705
Log:
OAK-936: Site checkin for project Oak Documentation-1.4-SNAPSHOT

Modified:
    jackrabbit/site/live/oak/docs/osgi_config.html
    jackrabbit/site/live/oak/docs/plugins/blobstore.html

Modified: jackrabbit/site/live/oak/docs/osgi_config.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/oak/docs/osgi_config.html?rev=1700705&r1=1700704&r2=1700705&view=diff
==============================================================================
--- jackrabbit/site/live/oak/docs/osgi_config.html (original)
+++ jackrabbit/site/live/oak/docs/osgi_config.html Wed Sep  2 04:52:05 2015
@@ -1,739 +1,752 @@
-<!DOCTYPE html>
-<!--
- | Generated by Apache Maven Doxia at 2015-08-06
- | Rendered using Apache Maven Fluido Skin 1.3.0
--->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150806" />
-    <meta http-equiv="Content-Language" content="en" />
-    <title>Jackrabbit Oak - Repository OSGi Configuration</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
-    <link rel="stylesheet" href="./css/site.css" />
-    <link rel="stylesheet" href="./css/print.css" media="print" />
-
-      
-    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
-
-    
-            </head>
-        <body class="topBarEnabled">
-          
-    
-    
-            
-    
-    
-    <a href="http://github.com/apache/jackrabbit-oak">
-      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
-        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
-        alt="Fork me on GitHub">
-    </a>
-  
-                
-                    
-                
-
-    <div id="topbar" class="navbar navbar-fixed-top ">
-      <div class="navbar-inner">
-                <div class="container-fluid">
-        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-          <span class="icon-bar"></span>
-        </a>
-                
-                                                                                                    <a class="brand" href="./"  title="Oak logo">
-
-                                
-                                                                                                                    <img src="oak_logo.png" alt="Oak logo" />
-                
-                </a>
-                    
-                                <ul class="nav">
-                          <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="index.html"  title="Jackrabbit Oak">Jackrabbit Oak</a>
-</li>
-                  
-                      <li>      <a href="license.html"  title="License">License</a>
-</li>
-                  
-                      <li>      <a href="downloads.html"  title="Downloads">Downloads</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Concepts and Architecture <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="architecture/overview.html"  title="Overview">Overview</a>
-</li>
-                  
-                      <li>      <a href="architecture/nodestate.html"  title="The Node State Model">The Node State Model</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Main APIs <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="http://www.day.com/specs/jcr/2.0/index.html"  title="JCR API">JCR API</a>
-</li>
-                  
-                      <li>      <a href="oak_api/overview.html"  title="Oak API">Oak API</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Features and Plugins <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="nodestore/overview.html"  title="Node Storage">Node Storage</a>
-</li>
-                  
-                      <li>      <a href="plugins/blobstore.html"  title="Blob Storage">Blob Storage</a>
-</li>
-                  
-                      <li>      <a href="nodestore/documentmk.html"  title="DocumentNodeStore">DocumentNodeStore</a>
-</li>
-                  
-                      <li>      <a href="nodestore/segment/overview.html"  title="Segment Node Store">Segment Node Store</a>
-</li>
-                  
-                      <li>      <a href="query/query.html"  title="Query">Query</a>
-</li>
-                  
-                      <li>      <a href="query/lucene.html"  title="Index - Lucene">Index - Lucene</a>
-</li>
-                  
-                      <li>      <a href="query/solr.html"  title="Index - Solr">Index - Solr</a>
-</li>
-                  
-                      <li>      <a href="security/overview.html"  title="Security">Security</a>
-</li>
-                  
-                      <li>      <a href="clustering.html"  title="Clustering">Clustering</a>
-</li>
-                  
-                      <li>      <a href="nodestore/persistent-cache.html"  title="Persistent Cache">Persistent Cache</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Using Oak <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="use_getting_started.html"  title="Getting Started">Getting Started</a>
-</li>
-                  
-                      <li>      <a href="construct.html"  title="Repository Construction">Repository Construction</a>
-</li>
-                  
-                      <li>      <a href="osgi_config.html"  title="Configuring Oak">Configuring Oak</a>
-</li>
-                  
-                      <li>      <a href="command_line.html"  title="Command Line Tools">Command Line Tools</a>
-</li>
-                  
-                      <li>      <a href="differences.html"  title="Differences to Jackrabbit 2">Differences to Jackrabbit 2</a>
-</li>
-                  
-                      <li>      <a href="known_issues.html"  title="Known Issues">Known Issues</a>
-</li>
-                  
-                      <li>      <a href="dos_and_donts.html"  title="Dos and Don'ts">Dos and Don'ts</a>
-</li>
-                  
-                      <li>      <a href="coldstandby/coldstandby.html"  title="Cold Standby">Cold Standby</a>
-</li>
-                  
-                      <li>      <a href="FAQ.html"  title="FAQ">FAQ</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developing Oak <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="dev_getting_started.html"  title="Getting Started">Getting Started</a>
-</li>
-                  
-                      <li>      <a href="participating.html"  title="Participating">Participating</a>
-</li>
-                  
-                      <li>      <a href="developing-with-git.html"  title="Developing with Git">Developing with Git</a>
-</li>
-                  
-                      <li>      <a href="attribution.html"  title="Attribution">Attribution</a>
-</li>
-                          </ul>
-      </li>
-                <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links <b class="caret"></b></a>
-        <ul class="dropdown-menu">
-        
-                      <li>      <a href="http://jackrabbit.apache.org/oak"  title="Apache Jackrabbit Oak">Apache Jackrabbit Oak</a>
-</li>
-                  
-                      <li>      <a href="http://jackrabbit.apache.org/"  title="Apache Jackrabbit">Apache Jackrabbit</a>
-</li>
-                          </ul>
-      </li>
-                  </ul>
-          
-          
-          
-                   
-                      </div>
-          
-        </div>
-      </div>
-    </div>
-    
-        <div class="container-fluid">
-          <div id="banner">
-        <div class="pull-left">
-                                <div id="bannerLeft">
-                <h2>Oak Documentation</h2>
-                </div>
-                      </div>
-        <div class="pull-right">  </div>
-        <div class="clear"><hr/></div>
-      </div>
-
-      <div id="breadcrumbs">
-        <ul class="breadcrumb">
-                
-                    
-                  <li id="publishDate">Last Published: 2015-08-06</li>
-                  <li class="divider">|</li> <li id="projectVersion">Version: 1.4-SNAPSHOT</li>
-                      
-                
-                    
-      
-                            </ul>
-      </div>
-
-            
-      <div class="row-fluid">
-        <div id="leftColumn" class="span3">
-          <div class="well sidebar-nav">
-                
-                    
-                <ul class="nav nav-list">
-                    <li class="nav-header">Overview</li>
-                                
-      <li>
-    
-                          <a href="index.html" title="Jackrabbit Oak">
-          <i class="none"></i>
-        Jackrabbit Oak</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="license.html" title="License">
-          <i class="none"></i>
-        License</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="downloads.html" title="Downloads">
-          <i class="none"></i>
-        Downloads</a>
-            </li>
-                              <li class="nav-header">Concepts and Architecture</li>
-                                
-      <li>
-    
-                          <a href="architecture/overview.html" title="Overview">
-          <i class="none"></i>
-        Overview</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="architecture/nodestate.html" title="The Node State Model">
-          <i class="none"></i>
-        The Node State Model</a>
-            </li>
-                              <li class="nav-header">Main APIs</li>
-                                
-      <li>
-    
-                          <a href="http://www.day.com/specs/jcr/2.0/index.html" class="externalLink" title="JCR API">
-          <i class="none"></i>
-        JCR API</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="oak_api/overview.html" title="Oak API">
-          <i class="none"></i>
-        Oak API</a>
-            </li>
-                              <li class="nav-header">Features and Plugins</li>
-                                
-      <li>
-    
-                          <a href="nodestore/overview.html" title="Node Storage">
-          <i class="none"></i>
-        Node Storage</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="plugins/blobstore.html" title="Blob Storage">
-          <i class="none"></i>
-        Blob Storage</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="nodestore/documentmk.html" title="DocumentNodeStore">
-          <i class="none"></i>
-        DocumentNodeStore</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="nodestore/segment/overview.html" title="Segment Node Store">
-          <i class="none"></i>
-        Segment Node Store</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="query/query.html" title="Query">
-          <i class="none"></i>
-        Query</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="query/lucene.html" title="Index - Lucene">
-          <i class="none"></i>
-        Index - Lucene</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="query/solr.html" title="Index - Solr">
-          <i class="none"></i>
-        Index - Solr</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="security/overview.html" title="Security">
-          <i class="none"></i>
-        Security</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="clustering.html" title="Clustering">
-          <i class="none"></i>
-        Clustering</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="nodestore/persistent-cache.html" title="Persistent Cache">
-          <i class="none"></i>
-        Persistent Cache</a>
-            </li>
-                              <li class="nav-header">Using Oak</li>
-                                
-      <li>
-    
-                          <a href="use_getting_started.html" title="Getting Started">
-          <i class="none"></i>
-        Getting Started</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="construct.html" title="Repository Construction">
-          <i class="none"></i>
-        Repository Construction</a>
-            </li>
-                  
-      <li class="active">
-    
-            <a href="#"><i class="none"></i>Configuring Oak</a>
-          </li>
-                  
-      <li>
-    
-                          <a href="command_line.html" title="Command Line Tools">
-          <i class="none"></i>
-        Command Line Tools</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="differences.html" title="Differences to Jackrabbit 2">
-          <i class="none"></i>
-        Differences to Jackrabbit 2</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="known_issues.html" title="Known Issues">
-          <i class="none"></i>
-        Known Issues</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="dos_and_donts.html" title="Dos and Don'ts">
-          <i class="none"></i>
-        Dos and Don'ts</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="coldstandby/coldstandby.html" title="Cold Standby">
-          <i class="none"></i>
-        Cold Standby</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="FAQ.html" title="FAQ">
-          <i class="none"></i>
-        FAQ</a>
-            </li>
-                              <li class="nav-header">Developing Oak</li>
-                                
-      <li>
-    
-                          <a href="dev_getting_started.html" title="Getting Started">
-          <i class="none"></i>
-        Getting Started</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="participating.html" title="Participating">
-          <i class="none"></i>
-        Participating</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="developing-with-git.html" title="Developing with Git">
-          <i class="none"></i>
-        Developing with Git</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="attribution.html" title="Attribution">
-          <i class="none"></i>
-        Attribution</a>
-            </li>
-                              <li class="nav-header">Links</li>
-                                
-      <li>
-    
-                          <a href="http://jackrabbit.apache.org/oak" class="externalLink" title="Apache Jackrabbit Oak">
-          <i class="none"></i>
-        Apache Jackrabbit Oak</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit">
-          <i class="none"></i>
-        Apache Jackrabbit</a>
-            </li>
-            </ul>
-                
-                    
-                
-          <hr class="divider" />
-
-           <div id="poweredBy">
-                   
-    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
-
-    
-    <div class="g-plusone" data-href="http://jackrabbit.apache.org/oak/docs/" data-size="tall" ></div>
-
-                   <div class="clear"></div>
-                            <div class="clear"></div>
-                            <div class="clear"></div>
-                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
-        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
-      </a>
-                  </div>
-          </div>
-        </div>
-        
-                
-        <div id="bodyColumn"  class="span9" >
-                                  
-            <!-- 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. --><h1>Repository OSGi Configuration</h1>
-<p>Oak comes with a simple mechanism for constructing content repositories for use in embedded deployments and test cases. Details regarding that are provided as part of <a href="construct.html">Repository Construction</a>. When used in OSGi environment then various Oak components can be configured using OSGi Configuration Support.</p>
-<p>Depending on component the configuration can be modified at runtime or needs to be specified before the initial system setup.</p>
-
-<dl>
-<dt>Static Configuration</dt>
-<dd>Such configuration settings cannot be changed once a repository  is initialized. For example choosing a <tt>DataStore</tt> or specifying the path of User Home.  Such properties should not be changed once a system is initialized.</dd>
-<dt>Dynamic Configuration</dt>
-<dd>Some of the configuration settings like thread pool size, cache size etc can be changed  at runtime or after initial system setup</dd>
-</dl>
-<p>Each OSGi configuration is referred via a PID i.e. persistent identifier. Sections below provide details around various PID used in Oak</p>
-<div class="section">
-<div class="section">
-<h3>NodeStore<a name="NodeStore"></a></h3>
-<div class="section">
-<h4>SegmentNodeStore<a name="SegmentNodeStore"></a></h4>
-<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService</tt></i></p>
-
-<dl>
-<dt>repository.home</dt>
-<dd>Path to repository home under which various repository related data is stored. Segment files would be stored under <i>${repository.home}/segmentstore</i> directory</dd>
-<dt>tarmk.size</dt>
-<dd>Default - 256 (in MB)</dd>
-<dd>Maximum file size (in MB)</dd>
-</dl>
-<p><a name="document-node-store"></a></p></div>
-<div class="section">
-<h4>DocumentNodeStore<a name="DocumentNodeStore"></a></h4>
-<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService</tt></i></p>
-
-<dl>
-<dt>mongouri</dt>
-<dd>Default - <a class="externalLink" href="mongodb://localhost:27017">mongodb://localhost:27017</a></dd>
-<dd>Specifies the <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">MongoURI</a> required to connect to Mongo Database</dd>
-<dt>db</dt>
-<dd>Default - oak</dd>
-<dd>Name of the database in Mongo</dd>
-<dt>cache</dt>
-<dd>Default - 256</dd>
-<dd>Cache size in MB. This is distributed among various caches used in DocumentNodeStore</dd>
-<dt>changesSize</dt>
-<dd>Default - 256</dd>
-<dd>Size in MB of capped collection used in Mongo for caching the diff output.</dd>
-<dt>customBlobStore</dt>
-<dd>Default false</dd>
-<dd>Boolean value indicating that custom <tt>BlobStore</tt> to use. By default it uses <tt>MongoBlobStore</tt>.</dd>
-<dt>maxReplicationLagInSecs</dt>
-<dd>Default 21600 (6 hours)</dd>
-<dd>Determines the duration beyond which it can be safely assumed that state on secondary would be consistent  with primary and its safe to read from them. (See <a class="externalLink" href="https://issues.apache.org/jira/browse/OAK-1645">OAK-1645</a>)</dd>
-<dt>blobGcMaxAgeInSecs</dt>
-<dd>Default 86400 (24 hrs)</dd>
-<dd>Blob Garbage Collector (GC) logic would only consider those blobs for GC which are not accessed recently  (currentTime - lastModifiedTime &gt; blobGcMaxAgeInSecs). For example as per default only those blobs which have  been created 24 hrs ago would be considered for GC</dd>
-<dt>versionGcMaxAgeInSecs</dt>
-<dd>Default 86400 (24 hrs)</dd>
-<dd>Oak uses MVCC model to store the data. So each update to a node results in new version getting created. This  duration controls how much old revision data should be kept. For example if a node is deleted at time T1 then its  content would only be marked deleted at revision for T1 but its content would not be removed. Only when a Revision  GC is run then its content would removed and that too only after (currentTime -T1 &gt; versionGcMaxAgeInSecs)</dd>
-<dt>blobCacheSize</dt>
-<dd>Default 16 (MB)</dd>
-<dd>DocumentNodeStore when running with Mongo would use <tt>MongoBlobStore</tt> by default unless a custom <tt>BlobStore</tt> is  configured. In such scenario the size of in memory cache for the frequently used blobs can be configured via  <tt>blobCacheSize</tt>.</dd>
-<dt>persistentCache</dt>
-<dd>Default &quot;&quot; (an empty string, meaning disabled)</dd>
-<dd>The <a href="./nodestore/persistent-cache.html">persistent cache</a>, which is stored in the local file system.</dd>
-<dt><a name="cache-allocation"></a></dt>
-<dt>nodeCachePercentage</dt>
-<dd>Default 25</dd>
-<dd>Percentage of <tt>cache</tt> allocated for <tt>nodeCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
-<dt>childrenCachePercentage</dt>
-<dd>Default 10</dd>
-<dd>Percentage of <tt>cache</tt> allocated for <tt>childrenCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
-<dt>diffCachePercentage</dt>
-<dd>Default 5</dd>
-<dd>Percentage of <tt>cache</tt> allocated for <tt>diffCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
-<dt>docChildrenCachePercentage</dt>
-<dd>Default 3</dd>
-<dd>Percentage of <tt>cache</tt> allocated for <tt>docChildrenCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
-<dt>cacheSegmentCount</dt>
-<dd>Default 16</dd>
-<dd>The number of segments in the LIRS cache</dd>
-<dd>Since 1.0.15, 1.2.3, 1.3.0</dd>
-<dt>cacheStackMoveDistance</dt>
-<dd>Default 16</dd>
-<dd>The delay to move entries to the head of the queue in the LIRS cache</dd>
-<dd>Since 1.0.15, 1.2.3, 1.3.0</dd>
-</dl>
-<p>Example config file</p>
-
-<div class="source">
-<pre>mongouri=mongodb://localhost:27017
-db=oak
-</pre></div>
-<div class="section">
-<h5>Mongo Configuration<a name="Mongo_Configuration"></a></h5>
-<p>All the configuration related to Mongo can be specified via <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">Mongo URI</a></p>
-
-<ul>
-  
-<li>
-<p><b>Authentication</b> - Username and password should be specified as part of uri e.g. the following  connects and logs in to the admin database as user sysop with the password moon:</p>
-  
-<div class="source">
-<pre>mongodb://sysop:moon@localhost
-</pre></div></li>
-  
-<li>
-<p><b>Read Preferences and Write Concern</b> - These also can be spcified as part of Mongo URI. Refer to  <a href="./nodestore/documentmk.html#rw-preference">Read Preference and Write Concern</a> section for more details. For  e.g. following would set <i>readPreference</i> to <i>secondary</i> and prefer replica with tag <i>dc:ny,rack:1</i>.  It would also specify the write timeout to 10 sec</p>
-  
-<div class="source">
-<pre>mongodb://db1.example.net,db2.example.com?readPreference=secondary&amp;readPreferenceTags=dc:ny,rack:1&amp;readPreferenceTags=dc:ny&amp;readPreferenceTags=&amp;w=1&amp;wtimeoutMS=10000    
-</pre></div></li>
-</ul>
-<p>One can also specify the connection pool size, socket timeout etc. For complete details about various possible option refer to <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">Mongo URI</a> </p>
-<p><a name="config-blobstore"></a> </p></div></div></div>
-<div class="section">
-<h3>Configuring DataStore/BlobStore<a name="Configuring_DataStoreBlobStore"></a></h3>
-<p>BlobStores are used to store the binary content. Support for Jackrabbit 2 <tt>DataStore</tt> is also provided via a <tt>DataStoreBlobStore</tt> wrapper. To use a specific BlobStore implementation following two steps need to be performed</p>
-
-<ol style="list-style-type: decimal">
-  
-<li>Configure NodeStore - NodeStore config need to be modified to enable use of custom BlobStore via setting <tt>customBlobStore</tt> to true</li>
-  
-<li>Configure BlobStore - Create config for the required BlobStore by using the PID for that BlobStore.</li>
-</ol>
-<p>Refer to <a href="#config-sling">Config steps in Apache Sling</a> for an example on how to configure a <tt>FileDataStore</tt> with <tt>DocumentNodeStore</tt></p>
-<div class="section">
-<h4>Jackrabbit 2 - FileDataStore<a name="Jackrabbit_2_-_FileDataStore"></a></h4>
-<p>Jackrabbit 2 <a class="externalLink" href="http://jackrabbit.apache.org/api/2.4/org/apache/jackrabbit/core/data/FileDataStore.html">FileDataStore</a> can be configured via following <i>pid</i></p>
-<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore</tt></i></p>
-
-<dl>
-<dt>path</dt>
-<dd>Default - Not specified</dd>
-<dd>Path to the directory under which the files would be stored.</dd>
-<dt>minRecordLength</dt>
-<dd>Default - 100</dd>
-<dd>Size in bytes. Binary content less than <tt>minRecordLength</tt> would be inlined i.e. the data store id is the data itself).</dd>
-<dt>maxCachedBinarySize</dt>
-<dd>Default - 17408 (17 KB)</dd>
-<dd>Size in bytes. Binaries with size less than or equal to this size would be stored in in memory cache</dd>
-<dt>cacheSizeInMB</dt>
-<dd>Default - 16</dd>
-<dd>Size in MB. In memory cache for storing small files whose size is less than <tt>maxCachedBinarySize</tt>. This  helps in better performance when lots of small binaries are accessed frequently.</dd>
-</dl></div>
-<div class="section">
-<h4>Jackrabbit 2 - S3DataStore<a name="Jackrabbit_2_-_S3DataStore"></a></h4>
-<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore</tt></i></p>
-
-<dl>
-<dt>maxCachedBinarySize</dt>
-<dd>Default - 17408 (17 KB)</dd>
-<dd>Size in bytes. Binaries with size less than or equal to this size would be stored in in memory cache</dd>
-<dt>cacheSizeInMB</dt>
-<dd>Default - 16</dd>
-<dd>Size in MB. In memory cache for storing small files whose size is less than <tt>maxCachedBinarySize</tt>. This  helps in better performance when lots of small binaries are accessed frequently.</dd>
-</dl></div></div>
-<div class="section">
-<h3>System properties and Framework properties<a name="System_properties_and_Framework_properties"></a></h3>
-<p>Following properties are supported by Oak. They are grouped in two parts <i>Stable</i> and <i>Experimental</i>. The stable properties would be supported in future version but the experimental properties would <i>might</i> not be supported in future versions</p>
-<div class="section">
-<h4>Stable<a name="Stable"></a></h4>
-
-<dl>
-<dt>oak.mongo.uri</dt>
-<dd>Type - System property and Framework Property</dd>
-<dd>Specifies the <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">MongoURI</a> required to connect to Mongo Database</dd>
-<dt>oak.mongo.db</dt>
-<dd>Type - System property and Framework Property</dd>
-<dd>Name of the database in Mongo</dd>
-</dl></div>
-<div class="section">
-<h4>Experimental<a name="Experimental"></a></h4></div></div>
-<div class="section">
-<h3>Configuration Steps for Apache Sling<a name="Configuration_Steps_for_Apache_Sling"></a></h3>
-<p>The OSGi Configuration Admin service defines a mechanism for passing configuration settings to an OSGi bundle. How a configuration is registered with the OSGi system varies depending on the application.</p>
-<p><a name="config-sling"></a> For example to configure <tt>DocumentNodeStore</tt> to use <tt>FileDataStore</tt> in Apache Sling</p>
-
-<ol style="list-style-type: decimal">
-  
-<li>
-<p>Create a config file with name <i>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg</i> under <i>${sling.home}/install</i> folder with content</p>
-  
-<div class="source">
-<pre>#Mongo server details
-mongouri=mongodb://localhost:27017
-
-#Name of Mongo database to use
-db=aem-author
-
-#Store binaries in custom BlobStore e.g. FileDataStore
-customBlobStore=true
-</pre></div></li>
-  
-<li>
-<p>Create a config file with name <i>org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg</i> under  <i>${sling.home}/install</i> folder with content</p>
-  
-<div class="source">
-<pre>#The minimum size of an object that should be stored in this data store.
-minRecordLength=4096
-
-#path to the DataStore
-path=./sling/repository/datastore
-
-#cache for storing small binaries in-memory
-cacheSizeInMB=128
-</pre></div></li>
-</ol>
-<div class="section">
-<h4>Framework Properties vs OSGi Configuration<a name="Framework_Properties_vs_OSGi_Configuration"></a></h4>
-<p>OSGi components can read config data from two sources.</p>
-
-<ol style="list-style-type: decimal">
-  
-<li>ConfigurationAdmin - These are configured via placing the *.cfg files under <i>${sling.home}/install</i> folder.  These can also be modified at runtime via Felix WebConsole typically available at <a class="externalLink" href="http://localhost:8080/system/console">http://localhost:8080/system/console</a></li>
-  
-<li>Framework Properties - An OSGi framework can be configured to start with some framework properties. These  properties cannot be changed at runtime. In Apache Sling these can be specified in <i>${sling.home}/sling.properties</i>  or <i>${sling.home}/conf/sling.properties</i></li>
-</ol>
-<p>In Oak some of the config properties are also read from <i>framework properties</i>. If a value is specified in both config file and framework properties then framework property takes precedence.</p>
-<p>For example by default Sling sets <b>repository.home</b> to <i>${sling.home}/repository</i>. So this value need not be specified in config files</p></div></div></div>
-                  </div>
-            </div>
-          </div>
-
-    <hr/>
-
-    <footer>
-            <div class="container-fluid">
-              <div class="row span12">Copyright &copy;                    2012-2015
-                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
-            All Rights Reserved.      
-                    
-      </div>
-
-        
-        
-          
-    
-    
-                
-    <div id="ohloh" class="pull-right">
-      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit-oak/widgets/project_thin_badge.js"></script>
-    </div>
-        </div>
-    </footer>
-  </body>
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2015-09-02
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <meta name="Date-Revision-yyyymmdd" content="20150902" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>Jackrabbit Oak - Repository OSGi Configuration</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <link rel="stylesheet" href="./css/site.css" />
+    <link rel="stylesheet" href="./css/print.css" media="print" />
+
+      
+    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+    
+            </head>
+        <body class="topBarEnabled">
+          
+    
+    
+            
+    
+    
+    <a href="http://github.com/apache/jackrabbit-oak">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
+        alt="Fork me on GitHub">
+    </a>
+  
+                
+                    
+                
+
+    <div id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+                <div class="container-fluid">
+        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </a>
+                
+                                                                                                    <a class="brand" href="./"  title="Oak logo">
+
+                                
+                                                                                                                    <img src="oak_logo.png" alt="Oak logo" />
+                
+                </a>
+                    
+                                <ul class="nav">
+                          <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="index.html"  title="Jackrabbit Oak">Jackrabbit Oak</a>
+</li>
+                  
+                      <li>      <a href="license.html"  title="License">License</a>
+</li>
+                  
+                      <li>      <a href="downloads.html"  title="Downloads">Downloads</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Concepts and Architecture <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="architecture/overview.html"  title="Overview">Overview</a>
+</li>
+                  
+                      <li>      <a href="architecture/nodestate.html"  title="The Node State Model">The Node State Model</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Main APIs <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="http://www.day.com/specs/jcr/2.0/index.html"  title="JCR API">JCR API</a>
+</li>
+                  
+                      <li>      <a href="oak_api/overview.html"  title="Oak API">Oak API</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Features and Plugins <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="nodestore/overview.html"  title="Node Storage">Node Storage</a>
+</li>
+                  
+                      <li>      <a href="plugins/blobstore.html"  title="Blob Storage">Blob Storage</a>
+</li>
+                  
+                      <li>      <a href="nodestore/documentmk.html"  title="DocumentNodeStore">DocumentNodeStore</a>
+</li>
+                  
+                      <li>      <a href="nodestore/segment/overview.html"  title="Segment Node Store">Segment Node Store</a>
+</li>
+                  
+                      <li>      <a href="query/query.html"  title="Query">Query</a>
+</li>
+                  
+                      <li>      <a href="query/lucene.html"  title="Index - Lucene">Index - Lucene</a>
+</li>
+                  
+                      <li>      <a href="query/solr.html"  title="Index - Solr">Index - Solr</a>
+</li>
+                  
+                      <li>      <a href="security/overview.html"  title="Security">Security</a>
+</li>
+                  
+                      <li>      <a href="clustering.html"  title="Clustering">Clustering</a>
+</li>
+                  
+                      <li>      <a href="nodestore/persistent-cache.html"  title="Persistent Cache">Persistent Cache</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Using Oak <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="use_getting_started.html"  title="Getting Started">Getting Started</a>
+</li>
+                  
+                      <li>      <a href="construct.html"  title="Repository Construction">Repository Construction</a>
+</li>
+                  
+                      <li>      <a href="osgi_config.html"  title="Configuring Oak">Configuring Oak</a>
+</li>
+                  
+                      <li>      <a href="command_line.html"  title="Command Line Tools">Command Line Tools</a>
+</li>
+                  
+                      <li>      <a href="differences.html"  title="Differences to Jackrabbit 2">Differences to Jackrabbit 2</a>
+</li>
+                  
+                      <li>      <a href="known_issues.html"  title="Known Issues">Known Issues</a>
+</li>
+                  
+                      <li>      <a href="dos_and_donts.html"  title="Dos and Don'ts">Dos and Don'ts</a>
+</li>
+                  
+                      <li>      <a href="coldstandby/coldstandby.html"  title="Cold Standby">Cold Standby</a>
+</li>
+                  
+                      <li>      <a href="FAQ.html"  title="FAQ">FAQ</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developing Oak <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="dev_getting_started.html"  title="Getting Started">Getting Started</a>
+</li>
+                  
+                      <li>      <a href="participating.html"  title="Participating">Participating</a>
+</li>
+                  
+                      <li>      <a href="developing-with-git.html"  title="Developing with Git">Developing with Git</a>
+</li>
+                  
+                      <li>      <a href="attribution.html"  title="Attribution">Attribution</a>
+</li>
+                          </ul>
+      </li>
+                <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+        
+                      <li>      <a href="http://jackrabbit.apache.org/oak"  title="Apache Jackrabbit Oak">Apache Jackrabbit Oak</a>
+</li>
+                  
+                      <li>      <a href="http://jackrabbit.apache.org/"  title="Apache Jackrabbit">Apache Jackrabbit</a>
+</li>
+                          </ul>
+      </li>
+                  </ul>
+          
+          
+          
+                   
+                      </div>
+          
+        </div>
+      </div>
+    </div>
+    
+        <div class="container-fluid">
+          <div id="banner">
+        <div class="pull-left">
+                                <div id="bannerLeft">
+                <h2>Oak Documentation</h2>
+                </div>
+                      </div>
+        <div class="pull-right">  </div>
+        <div class="clear"><hr/></div>
+      </div>
+
+      <div id="breadcrumbs">
+        <ul class="breadcrumb">
+                
+                    
+                  <li id="publishDate">Last Published: 2015-09-02</li>
+                  <li class="divider">|</li> <li id="projectVersion">Version: 1.4-SNAPSHOT</li>
+                      
+                
+                    
+      
+                            </ul>
+      </div>
+
+            
+      <div class="row-fluid">
+        <div id="leftColumn" class="span3">
+          <div class="well sidebar-nav">
+                
+                    
+                <ul class="nav nav-list">
+                    <li class="nav-header">Overview</li>
+                                
+      <li>
+    
+                          <a href="index.html" title="Jackrabbit Oak">
+          <i class="none"></i>
+        Jackrabbit Oak</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="license.html" title="License">
+          <i class="none"></i>
+        License</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="downloads.html" title="Downloads">
+          <i class="none"></i>
+        Downloads</a>
+            </li>
+                              <li class="nav-header">Concepts and Architecture</li>
+                                
+      <li>
+    
+                          <a href="architecture/overview.html" title="Overview">
+          <i class="none"></i>
+        Overview</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="architecture/nodestate.html" title="The Node State Model">
+          <i class="none"></i>
+        The Node State Model</a>
+            </li>
+                              <li class="nav-header">Main APIs</li>
+                                
+      <li>
+    
+                          <a href="http://www.day.com/specs/jcr/2.0/index.html" class="externalLink" title="JCR API">
+          <i class="none"></i>
+        JCR API</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="oak_api/overview.html" title="Oak API">
+          <i class="none"></i>
+        Oak API</a>
+            </li>
+                              <li class="nav-header">Features and Plugins</li>
+                                
+      <li>
+    
+                          <a href="nodestore/overview.html" title="Node Storage">
+          <i class="none"></i>
+        Node Storage</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="plugins/blobstore.html" title="Blob Storage">
+          <i class="none"></i>
+        Blob Storage</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="nodestore/documentmk.html" title="DocumentNodeStore">
+          <i class="none"></i>
+        DocumentNodeStore</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="nodestore/segment/overview.html" title="Segment Node Store">
+          <i class="none"></i>
+        Segment Node Store</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="query/query.html" title="Query">
+          <i class="none"></i>
+        Query</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="query/lucene.html" title="Index - Lucene">
+          <i class="none"></i>
+        Index - Lucene</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="query/solr.html" title="Index - Solr">
+          <i class="none"></i>
+        Index - Solr</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="security/overview.html" title="Security">
+          <i class="none"></i>
+        Security</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="clustering.html" title="Clustering">
+          <i class="none"></i>
+        Clustering</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="nodestore/persistent-cache.html" title="Persistent Cache">
+          <i class="none"></i>
+        Persistent Cache</a>
+            </li>
+                              <li class="nav-header">Using Oak</li>
+                                
+      <li>
+    
+                          <a href="use_getting_started.html" title="Getting Started">
+          <i class="none"></i>
+        Getting Started</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="construct.html" title="Repository Construction">
+          <i class="none"></i>
+        Repository Construction</a>
+            </li>
+                  
+      <li class="active">
+    
+            <a href="#"><i class="none"></i>Configuring Oak</a>
+          </li>
+                  
+      <li>
+    
+                          <a href="command_line.html" title="Command Line Tools">
+          <i class="none"></i>
+        Command Line Tools</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="differences.html" title="Differences to Jackrabbit 2">
+          <i class="none"></i>
+        Differences to Jackrabbit 2</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="known_issues.html" title="Known Issues">
+          <i class="none"></i>
+        Known Issues</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="dos_and_donts.html" title="Dos and Don'ts">
+          <i class="none"></i>
+        Dos and Don'ts</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="coldstandby/coldstandby.html" title="Cold Standby">
+          <i class="none"></i>
+        Cold Standby</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="FAQ.html" title="FAQ">
+          <i class="none"></i>
+        FAQ</a>
+            </li>
+                              <li class="nav-header">Developing Oak</li>
+                                
+      <li>
+    
+                          <a href="dev_getting_started.html" title="Getting Started">
+          <i class="none"></i>
+        Getting Started</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="participating.html" title="Participating">
+          <i class="none"></i>
+        Participating</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="developing-with-git.html" title="Developing with Git">
+          <i class="none"></i>
+        Developing with Git</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="attribution.html" title="Attribution">
+          <i class="none"></i>
+        Attribution</a>
+            </li>
+                              <li class="nav-header">Links</li>
+                                
+      <li>
+    
+                          <a href="http://jackrabbit.apache.org/oak" class="externalLink" title="Apache Jackrabbit Oak">
+          <i class="none"></i>
+        Apache Jackrabbit Oak</a>
+            </li>
+                  
+      <li>
+    
+                          <a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit">
+          <i class="none"></i>
+        Apache Jackrabbit</a>
+            </li>
+            </ul>
+                
+                    
+                
+          <hr class="divider" />
+
+           <div id="poweredBy">
+                   
+    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+
+    
+    <div class="g-plusone" data-href="http://jackrabbit.apache.org/oak/docs/" data-size="tall" ></div>
+
+                   <div class="clear"></div>
+                            <div class="clear"></div>
+                            <div class="clear"></div>
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+      </a>
+                  </div>
+          </div>
+        </div>
+        
+                
+        <div id="bodyColumn"  class="span9" >
+                                  
+            <!-- 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. --><h1>Repository OSGi Configuration</h1>
+<p>Oak comes with a simple mechanism for constructing content repositories for use in embedded deployments and test cases. Details regarding that are provided as part of <a href="construct.html">Repository Construction</a>. When used in OSGi environment then various Oak components can be configured using OSGi Configuration Support.</p>
+<p>Depending on component the configuration can be modified at runtime or needs to be specified before the initial system setup.</p>
+
+<dl>
+<dt>Static Configuration</dt>
+<dd>Such configuration settings cannot be changed once a repository  is initialized. For example choosing a <tt>DataStore</tt> or specifying the path of User Home.  Such properties should not be changed once a system is initialized.</dd>
+<dt>Dynamic Configuration</dt>
+<dd>Some of the configuration settings like thread pool size, cache size etc can be changed  at runtime or after initial system setup</dd>
+</dl>
+<p>Each OSGi configuration is referred via a PID i.e. persistent identifier. Sections below provide details around various PID used in Oak</p>
+<div class="section">
+<div class="section">
+<h3>NodeStore<a name="NodeStore"></a></h3>
+<div class="section">
+<h4>SegmentNodeStore<a name="SegmentNodeStore"></a></h4>
+<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService</tt></i></p>
+
+<dl>
+<dt>repository.home</dt>
+<dd>Path to repository home under which various repository related data is stored. Segment files would be stored under <i>${repository.home}/segmentstore</i> directory</dd>
+<dt>tarmk.size</dt>
+<dd>Default - 256 (in MB)</dd>
+<dd>Maximum file size (in MB)</dd>
+</dl>
+<p><a name="document-node-store"></a></p></div>
+<div class="section">
+<h4>DocumentNodeStore<a name="DocumentNodeStore"></a></h4>
+<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService</tt></i></p>
+
+<dl>
+<dt>mongouri</dt>
+<dd>Default - <a class="externalLink" href="mongodb://localhost:27017">mongodb://localhost:27017</a></dd>
+<dd>Specifies the <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">MongoURI</a> required to connect to Mongo Database</dd>
+<dt>db</dt>
+<dd>Default - oak</dd>
+<dd>Name of the database in Mongo</dd>
+<dt>cache</dt>
+<dd>Default - 256</dd>
+<dd>Cache size in MB. This is distributed among various caches used in DocumentNodeStore</dd>
+<dt>changesSize</dt>
+<dd>Default - 256</dd>
+<dd>Size in MB of capped collection used in Mongo for caching the diff output.</dd>
+<dt>customBlobStore</dt>
+<dd>Default false</dd>
+<dd>Boolean value indicating that custom <tt>BlobStore</tt> to use. By default it uses <tt>MongoBlobStore</tt>.</dd>
+<dt>maxReplicationLagInSecs</dt>
+<dd>Default 21600 (6 hours)</dd>
+<dd>Determines the duration beyond which it can be safely assumed that state on secondary would be consistent  with primary and its safe to read from them. (See <a class="externalLink" href="https://issues.apache.org/jira/browse/OAK-1645">OAK-1645</a>)</dd>
+<dt>blobGcMaxAgeInSecs</dt>
+<dd>Default 86400 (24 hrs)</dd>
+<dd>Blob Garbage Collector (GC) logic would only consider those blobs for GC which are not accessed recently  (currentTime - lastModifiedTime &gt; blobGcMaxAgeInSecs). For example as per default only those blobs which have  been created 24 hrs ago would be considered for GC</dd>
+<dt>versionGcMaxAgeInSecs</dt>
+<dd>Default 86400 (24 hrs)</dd>
+<dd>Oak uses MVCC model to store the data. So each update to a node results in new version getting created. This  duration controls how much old revision data should be kept. For example if a node is deleted at time T1 then its  content would only be marked deleted at revision for T1 but its content would not be removed. Only when a Revision  GC is run then its content would removed and that too only after (currentTime -T1 &gt; versionGcMaxAgeInSecs)</dd>
+<dt>blobCacheSize</dt>
+<dd>Default 16 (MB)</dd>
+<dd>DocumentNodeStore when running with Mongo would use <tt>MongoBlobStore</tt> by default unless a custom <tt>BlobStore</tt> is  configured. In such scenario the size of in memory cache for the frequently used blobs can be configured via  <tt>blobCacheSize</tt>.</dd>
+<dt>persistentCache</dt>
+<dd>Default &quot;&quot; (an empty string, meaning disabled)</dd>
+<dd>The <a href="./nodestore/persistent-cache.html">persistent cache</a>, which is stored in the local file system.</dd>
+<dt><a name="cache-allocation"></a></dt>
+<dt>nodeCachePercentage</dt>
+<dd>Default 25</dd>
+<dd>Percentage of <tt>cache</tt> allocated for <tt>nodeCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
+<dt>childrenCachePercentage</dt>
+<dd>Default 10</dd>
+<dd>Percentage of <tt>cache</tt> allocated for <tt>childrenCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
+<dt>diffCachePercentage</dt>
+<dd>Default 5</dd>
+<dd>Percentage of <tt>cache</tt> allocated for <tt>diffCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
+<dt>docChildrenCachePercentage</dt>
+<dd>Default 3</dd>
+<dd>Percentage of <tt>cache</tt> allocated for <tt>docChildrenCache</tt>. See <a href="./nodestore/documentmk.html#cache">Caching</a></dd>
+<dt>cacheSegmentCount</dt>
+<dd>Default 16</dd>
+<dd>The number of segments in the LIRS cache</dd>
+<dd>Since 1.0.15, 1.2.3, 1.3.0</dd>
+<dt>cacheStackMoveDistance</dt>
+<dd>Default 16</dd>
+<dd>The delay to move entries to the head of the queue in the LIRS cache</dd>
+<dd>Since 1.0.15, 1.2.3, 1.3.0</dd>
+</dl>
+<p>Example config file</p>
+
+<div class="source">
+<pre>mongouri=mongodb://localhost:27017
+db=oak
+</pre></div>
+<div class="section">
+<h5>Mongo Configuration<a name="Mongo_Configuration"></a></h5>
+<p>All the configuration related to Mongo can be specified via <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">Mongo URI</a></p>
+
+<ul>
+  
+<li>
+<p><b>Authentication</b> - Username and password should be specified as part of uri e.g. the following  connects and logs in to the admin database as user sysop with the password moon:</p>
+  
+<div class="source">
+<pre>mongodb://sysop:moon@localhost
+</pre></div></li>
+  
+<li>
+<p><b>Read Preferences and Write Concern</b> - These also can be spcified as part of Mongo URI. Refer to  <a href="./nodestore/documentmk.html#rw-preference">Read Preference and Write Concern</a> section for more details. For  e.g. following would set <i>readPreference</i> to <i>secondary</i> and prefer replica with tag <i>dc:ny,rack:1</i>.  It would also specify the write timeout to 10 sec</p>
+  
+<div class="source">
+<pre>mongodb://db1.example.net,db2.example.com?readPreference=secondary&amp;readPreferenceTags=dc:ny,rack:1&amp;readPreferenceTags=dc:ny&amp;readPreferenceTags=&amp;w=1&amp;wtimeoutMS=10000    
+</pre></div></li>
+</ul>
+<p>One can also specify the connection pool size, socket timeout etc. For complete details about various possible option refer to <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">Mongo URI</a> </p>
+<p><a name="config-blobstore"></a> </p></div></div></div>
+<div class="section">
+<h3>Configuring DataStore/BlobStore<a name="Configuring_DataStoreBlobStore"></a></h3>
+<p>BlobStores are used to store the binary content. Support for Jackrabbit 2 <tt>DataStore</tt> is also provided via a <tt>DataStoreBlobStore</tt> wrapper. To use a specific BlobStore implementation following two steps need to be performed</p>
+
+<ol style="list-style-type: decimal">
+  
+<li>Configure NodeStore - NodeStore config need to be modified to enable use of custom BlobStore via setting <tt>customBlobStore</tt> to true</li>
+  
+<li>Configure BlobStore - Create config for the required BlobStore by using the PID for that BlobStore.</li>
+</ol>
+<p>Refer to <a href="#config-sling">Config steps in Apache Sling</a> for an example on how to configure a <tt>FileDataStore</tt> with <tt>DocumentNodeStore</tt></p>
+<div class="section">
+<h4>Jackrabbit 2 - FileDataStore<a name="Jackrabbit_2_-_FileDataStore"></a></h4>
+<p>Jackrabbit 2 <a class="externalLink" href="http://jackrabbit.apache.org/api/2.4/org/apache/jackrabbit/core/data/FileDataStore.html">FileDataStore</a> can be configured via following <i>pid</i></p>
+<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore</tt></i></p>
+
+<dl>
+<dt>path</dt>
+<dd>Default - Not specified</dd>
+<dd>Path to the directory under which the files would be stored.</dd>
+<dt>minRecordLength</dt>
+<dd>Default - 100</dd>
+<dd>Size in bytes. Binary content less than <tt>minRecordLength</tt> would be inlined i.e. the data store id is the data itself).</dd>
+<dt>maxCachedBinarySize</dt>
+<dd>Default - 17408 (17 KB)</dd>
+<dd>Size in bytes. Binaries with size less than or equal to this size would be stored in in memory cache</dd>
+<dt>cacheSizeInMB</dt>
+<dd>Default - 16</dd>
+<dd>Size in MB. In memory cache for storing small files whose size is less than <tt>maxCachedBinarySize</tt>. This  helps in better performance when lots of small binaries are accessed frequently.</dd>
+</dl></div>
+<div class="section">
+<h4>Jackrabbit 2 - S3DataStore<a name="Jackrabbit_2_-_S3DataStore"></a></h4>
+<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore</tt></i></p>
+
+<dl>
+<dt>maxCachedBinarySize</dt>
+<dd>Default - 17408 (17 KB)</dd>
+<dd>Size in bytes. Binaries with size less than or equal to this size would be stored in in memory cache</dd>
+<dt>cacheSizeInMB</dt>
+<dd>Default - 16</dd>
+<dd>Size in MB. In memory cache for storing small files whose size is less than <tt>maxCachedBinarySize</tt>. This  helps in better performance when lots of small binaries are accessed frequently.</dd>
+</dl></div>
+<div class="section">
+<h4>Oak - SharedS3DataStore (Since Oak 1.2.0)<a name="Oak_-_SharedS3DataStore_Since_Oak_1.2.0"></a></h4>
+<p>Supports shared S3 DataStore</p>
+<p><i>PID <tt>org.apache.jackrabbit.oak.plugins.blob.datastore.SharedS3DataStore</tt></i></p>
+
+<dl>
+<dt>maxCachedBinarySize</dt>
+<dd>Default - 17408 (17 KB)</dd>
+<dd>Size in bytes. Binaries with size less than or equal to this size would be stored in in memory cache</dd>
+<dt>cacheSizeInMB</dt>
+<dd>Default - 16</dd>
+<dd>Size in MB. In memory cache for storing small files whose size is less than <tt>maxCachedBinarySize</tt>. This  helps in better performance when lots of small binaries are accessed frequently.</dd>
+</dl></div></div>
+<div class="section">
+<h3>System properties and Framework properties<a name="System_properties_and_Framework_properties"></a></h3>
+<p>Following properties are supported by Oak. They are grouped in two parts <i>Stable</i> and <i>Experimental</i>. The stable properties would be supported in future version but the experimental properties would <i>might</i> not be supported in future versions</p>
+<div class="section">
+<h4>Stable<a name="Stable"></a></h4>
+
+<dl>
+<dt>oak.mongo.uri</dt>
+<dd>Type - System property and Framework Property</dd>
+<dd>Specifies the <a class="externalLink" href="http://docs.mongodb.org/manual/reference/connection-string/">MongoURI</a> required to connect to Mongo Database</dd>
+<dt>oak.mongo.db</dt>
+<dd>Type - System property and Framework Property</dd>
+<dd>Name of the database in Mongo</dd>
+</dl></div>
+<div class="section">
+<h4>Experimental<a name="Experimental"></a></h4></div></div>
+<div class="section">
+<h3>Configuration Steps for Apache Sling<a name="Configuration_Steps_for_Apache_Sling"></a></h3>
+<p>The OSGi Configuration Admin service defines a mechanism for passing configuration settings to an OSGi bundle. How a configuration is registered with the OSGi system varies depending on the application.</p>
+<p><a name="config-sling"></a> For example to configure <tt>DocumentNodeStore</tt> to use <tt>FileDataStore</tt> in Apache Sling</p>
+
+<ol style="list-style-type: decimal">
+  
+<li>
+<p>Create a config file with name <i>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.cfg</i> under <i>${sling.home}/install</i> folder with content</p>
+  
+<div class="source">
+<pre>#Mongo server details
+mongouri=mongodb://localhost:27017
+
+#Name of Mongo database to use
+db=aem-author
+
+#Store binaries in custom BlobStore e.g. FileDataStore
+customBlobStore=true
+</pre></div></li>
+  
+<li>
+<p>Create a config file with name <i>org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.cfg</i> under  <i>${sling.home}/install</i> folder with content</p>
+  
+<div class="source">
+<pre>#The minimum size of an object that should be stored in this data store.
+minRecordLength=4096
+
+#path to the DataStore
+path=./sling/repository/datastore
+
+#cache for storing small binaries in-memory
+cacheSizeInMB=128
+</pre></div></li>
+</ol>
+<div class="section">
+<h4>Framework Properties vs OSGi Configuration<a name="Framework_Properties_vs_OSGi_Configuration"></a></h4>
+<p>OSGi components can read config data from two sources.</p>
+
+<ol style="list-style-type: decimal">
+  
+<li>ConfigurationAdmin - These are configured via placing the *.cfg files under <i>${sling.home}/install</i> folder.  These can also be modified at runtime via Felix WebConsole typically available at <a class="externalLink" href="http://localhost:8080/system/console">http://localhost:8080/system/console</a></li>
+  
+<li>Framework Properties - An OSGi framework can be configured to start with some framework properties. These  properties cannot be changed at runtime. In Apache Sling these can be specified in <i>${sling.home}/sling.properties</i>  or <i>${sling.home}/conf/sling.properties</i></li>
+</ol>
+<p>In Oak some of the config properties are also read from <i>framework properties</i>. If a value is specified in both config file and framework properties then framework property takes precedence.</p>
+<p>For example by default Sling sets <b>repository.home</b> to <i>${sling.home}/repository</i>. So this value need not be specified in config files</p></div></div></div>
+                  </div>
+            </div>
+          </div>
+
+    <hr/>
+
+    <footer>
+            <div class="container-fluid">
+              <div class="row span12">Copyright &copy;                    2012-2015
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+            All Rights Reserved.      
+                    
+      </div>
+
+        
+        
+          
+    
+    
+                
+    <div id="ohloh" class="pull-right">
+      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit-oak/widgets/project_thin_badge.js"></script>
+    </div>
+        </div>
+    </footer>
+  </body>
 </html>
\ No newline at end of file

Modified: jackrabbit/site/live/oak/docs/plugins/blobstore.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/oak/docs/plugins/blobstore.html?rev=1700705&r1=1700704&r2=1700705&view=diff
==============================================================================
--- jackrabbit/site/live/oak/docs/plugins/blobstore.html (original)
+++ jackrabbit/site/live/oak/docs/plugins/blobstore.html Wed Sep  2 04:52:05 2015
@@ -1,13 +1,13 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2015-08-06
+ | Generated by Apache Maven Doxia at 2015-09-02
  | Rendered using Apache Maven Fluido Skin 1.3.0
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20150806" />
+    <meta name="Date-Revision-yyyymmdd" content="20150902" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Jackrabbit Oak - The Blob Store</title>
     <link rel="stylesheet" href="../css/apache-maven-fluido-1.3.0.min.css" />
@@ -210,7 +210,7 @@
         <ul class="breadcrumb">
                 
                     
-                  <li id="publishDate">Last Published: 2015-08-06</li>
+                  <li id="publishDate">Last Published: 2015-09-02</li>
                   <li class="divider">|</li> <li id="projectVersion">Version: 1.4-SNAPSHOT</li>
                       
                 
@@ -522,23 +522,6 @@
 <p>Binaries that are similar: in the BlobStore, currently, they are stored separately except if some of the 2 MB blocks match. However, the algorithm in the BlobStore would allow to re-use all matching parts, because in the BlobStore, concatenating blob ids means concatenating the data.</p>
 <p>Another change was that most DataStore implementations use SHA-1, while the BlobStore uses SHA-256. Using SHA-256 will be a requirement at some point, see also <a class="externalLink" href="http://en.wikipedia.org/wiki/SHA-2">http://en.wikipedia.org/wiki/SHA-2</a> &#x201c;Federal agencies &#x2026; must use the SHA-2 family of hash functions for these applications after 2010&#x201d;. This might affect some potential users.</p>
 <div class="section">
-<h3>Blob Garbage Collection<a name="Blob_Garbage_Collection"></a></h3>
-<p>Oak implements a Mark and Sweep based Garbage Collection logic. </p>
-
-<ol style="list-style-type: decimal">
-  
-<li>Mark Phase - In this phase the binary references are marked in both  BlobStore and NodeStore
-  
-<ol style="list-style-type: decimal">
-    
-<li>Mark BlobStore - GC logic would make a record of all the blob  references present in the BlobStore. In doing so it would only  consider those blobs which are older than a specified time  interval. So only those blob references are fetched which are  last modified say 24 hrs (default) ago.</li>
-    
-<li>Mark NodeStore - GC logic would make a record of all the blob  references which are referred by any node present in NodeStore.  Note that any blob references from old revisions of node would also be  considered as a valid references.</li>
-  </ol></li>
-  
-<li>Sweep Phase - In this phase all blob references form Mark BlobStore phase which were not found in Mark NodeStore part would considered as GC candidates and would be deleted.</li>
-</ol></div>
-<div class="section">
 <h3>Support for Jackrabbit 2 DataStore<a name="Support_for_Jackrabbit_2_DataStore"></a></h3>
 <p>Jackrabbit 2 used <a class="externalLink" href="http://wiki.apache.org/jackrabbit/DataStore">DataStore</a> to store blobs. Oak supports usage of such DataStore via <tt>DataStoreBlobStore</tt> wrapper. This allows usage of <tt>FileDataStore</tt> and <tt>S3DataStore</tt> with Oak NodeStore implementations. </p></div>
 <div class="section">
@@ -587,6 +570,98 @@
 <li>FileDataStore - This should be used if the binaries have to be stored on the file system. This  would also be used when a JR2 repository is migrated to Oak</li>
   
 <li>S3DataStore - This should be used when binaries are stored in Amazon S3. Typically used when running  in Amazon AWS</li>
+</ul></div></div>
+<div class="section">
+<h3>Blob Garbage Collection<a name="Blob_Garbage_Collection"></a></h3>
+<p>Blob Garbage Collection(GC) is applicable for the following blob stores:</p>
+
+<ul>
+  
+<li>
+<p>DocumentNodeStore</p>
+  
+<ul>
+    
+<li>MongoBlobStore/RDBBlobStore (Default blob stores for RDB &amp; Mongo)</li>
+    
+<li>FileDataStore</li>
+    
+<li>S3DataStore</li>
+    
+<li>SharedS3DataStore (since Oak 1.2.0)</li>
+  </ul></li>
+  
+<li>
+<p>SegmentNodeStore </p>
+  
+<ul>
+    
+<li>FileDataStore</li>
+    
+<li>S3DataStore</li>
+    
+<li>SharedS3DataStore (since Oak 1.2.0)</li>
+  </ul></li>
+</ul>
+<p>Oak implements a Mark and Sweep based Garbage Collection logic. </p>
+
+<ol style="list-style-type: decimal">
+  
+<li>Mark Phase - In this phase the binary references are marked in both  BlobStore and NodeStore
+  
+<ol style="list-style-type: decimal">
+    
+<li>Mark BlobStore - GC logic would make a record of all the blobs  present in the BlobStore.</li>
+    
+<li>Mark NodeStore - GC logic would make a record of all the blob  references which are referred by any node present in NodeStore.  Note that any blob references from old revisions of node would also be  considered as a valid references.</li>
+  </ol></li>
+  
+<li>Sweep Phase - In this phase all blob references form Mark BlobStore phase which were not found in Mark NodeStore part would considered as GC candidates. It would only delete blobs which are older than a specified time interval (last modified say 24 hrs (default) ago).</li>
+</ol>
+<p>The garbage collection can be triggered by calling:</p>
+
+<ul>
+  
+<li><tt>MarkSweepGarbageCollector#collectGarbage()</tt> (Oak 1.0.x)</li>
+  
+<li><tt>MarkSweepGarbageCollector#collectGarbage(false)</tt> (Oak 1.2.x)</li>
+</ul>
+<div class="section">
+<h4>Shared DataStore Blob Garbage Collection (Since 1.2.0)<a name="Shared_DataStore_Blob_Garbage_Collection_Since_1.2.0"></a></h4>
+<p>On start of a repository configured with a shared DataStore, a unique repository id is registered. In the DataStore this repository id is registered as an empty file with the format <tt>repository-[repository-id]</tt> (e.g. repository-988373a0-3efb-451e-ab4c-f7e794189273). The high-level process for garbage collection is still the same as described above. But to support blob garbage collection in a shared DataStore the Mark and Sweep phase can be run independently.</p>
+<p>The details of the process are as follows:</p>
+
+<ul>
+  
+<li>The Mark NodeStore phase has to be executed for each of the repositories sharing the DataStore.
+  
+<ul>
+    
+<li>This can be executed by running <tt>MarkSweepGarbageCollector#collectGarbage(true)</tt>, where true indicates mark only.</li>
+    
+<li>All the references are collected in the DataStore in a file with the format <tt>references-[repository-id]</tt> (e.g. references-988373a0-3efb-451e-ab4c-f7e794189273).</li>
+  </ul></li>
+  
+<li>One completion of the above process on all repositories, the sweep phase needs to be triggered.
+  
+<ul>
+    
+<li>This can be executed by running <tt>MarkSweepGarbageCollector#collectGarbage(false)</tt> on one of the repositories, where false indicates to run sweep also.</li>
+    
+<li>The sweep process checks for availability of the references file from all registered repositories and aborts otherwise.</li>
+    
+<li>All the references available are collected.</li>
+    
+<li>All the blobs available in the DataStore are collected and deletion candidates identified by calculating all the blobs available not appearing in the blobs referenced. Only blobs older than a specified time interval from the earliest available references file are deleted. (last modified say 24 hrs (default)).</li>
+  </ul></li>
+</ul>
+<p>The shared DataStore garbage collection is applicable for the following DataStore(s):</p>
+
+<ul>
+  
+<li>FileDataStore</li>
+  
+<li>SharedS3DataStore - Extends the S3DataStore to enable sharing of the data store with  multiple repositories</li>
 </ul></div></div></div>
                   </div>
             </div>