Author: amitj
Date: Wed May 3 05:20:45 2017
New Revision: 1793609
URL: http://svn.apache.org/viewvc?rev=1793609&view=rev
Log:
OAK-4933: Create a data store implementation that integrates with Microsoft
Azure Blob Storage
Merged r1788387 from trunk
Added:
jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/
- copied from r1788387, jackrabbit/oak/trunk/oak-blob-cloud-azure/
Modified:
jackrabbit/oak/branches/1.6/ (props changed)
jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/pom.xml
jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/osgi_config.md
jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/plugins/blobstore.md
jackrabbit/oak/branches/1.6/oak-parent/pom.xml
jackrabbit/oak/branches/1.6/pom.xml
Propchange: jackrabbit/oak/branches/1.6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 3 05:20:45 2017
@@ -1,3 +1,3 @@
/jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784130,1784162,1784251,1784401,1784551,1784574,1785095,1785108,1785283,1785838,1785919,1785946,1787074,1787217,1788378,1790382,1792463,1792742,1793088
+/jackrabbit/oak/trunk:1781068,1781075,1781248,1781386,1781846,1781907,1782000,1782029,1782196,1782447,1782476,1782770,1782945,1782966,1782973,1782990,1783061,1783066,1783089,1783104-1783105,1783619,1783720,1783731,1783733,1783738,1783742,1783773,1783855,1783891,1784023,1784130,1784162,1784251,1784401,1784551,1784574,1785095,1785108,1785283,1785838,1785919,1785946,1787074,1787217,1788378,1788387,1790382,1792463,1792742,1793088
/jackrabbit/trunk:1345480
Modified: jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/pom.xml?rev=1793609&r1=1788387&r2=1793609&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/pom.xml (original)
+++ jackrabbit/oak/branches/1.6/oak-blob-cloud-azure/pom.xml Wed May 3
05:20:45 2017
@@ -21,7 +21,7 @@
<parent>
<artifactId>oak-parent</artifactId>
<groupId>org.apache.jackrabbit</groupId>
- <version>1.8-SNAPSHOT</version>
+ <version>1.6.2-SNAPSHOT</version>
<relativePath>../oak-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/osgi_config.md
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/osgi_config.md?rev=1793609&r1=1793608&r2=1793609&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/osgi_config.md
(original)
+++ jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/osgi_config.md Wed
May 3 05:20:45 2017
@@ -433,6 +433,7 @@ All the above data stores enable local f
* _PID `org.apache.jackrabbit.oak.plugins.blob.datastore.SharedS3DataStore`_
* _PID `org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore`_
* _PID `org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore`_
+* _PID `org.apache.jackrabbit.oak.plugins.blob.datastore.AzureDataStore`_
cacheSize
: Default - 68719476736
Modified:
jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/plugins/blobstore.md
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/plugins/blobstore.md?rev=1793609&r1=1793608&r2=1793609&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/plugins/blobstore.md
(original)
+++ jackrabbit/oak/branches/1.6/oak-doc/src/site/markdown/plugins/blobstore.md
Wed May 3 05:20:45 2017
@@ -78,6 +78,7 @@ Further Oak ships with multiple BlobStor
4. `S3DataStore` (with wrapper) - Stores the file in Amazon S3
5. `RDBBlobStore` - Store the file contents in chunks in a relational
databases. Typically used with
`DocumentNodeStore`when using a relational DB persistence
+6. `AzureDataStore` (with wrapper) - Stores the file in Microsoft Azure Blob
storage
In addition there are some more implementations which are considered
**experimental**
@@ -98,6 +99,7 @@ can be used
* FileDataStore - This should be used if the blobs/binaries have to be shared
between multiple
repositories. This would also be used when a JR2 repository is migrated to
Oak
* S3DataStore - This should be used when binaries are stored in Amazon S3
+* AzureDataStore - This should be used when binaries are stored in Microsoft
Azure Blob storage
#### DocumentNodeStore
@@ -112,7 +114,7 @@ one of the following can be used
#### Caching DataStore
-The DataStore implementations `S3DataStore` and `CachingFileDataStore` support
local file system caching for the
+The DataStore implementations `S3DataStore`,`CachingFileDataStore` and
`AzureDataStore` support local file system caching for the
files/blobs and extend the `AbstractSharedCachingDataStore` class which
implements the caching functionality. The
`CachingFileDataStore` is useful when the DataStore is on nfs.
The cache has a size limit and is configured by the `cacheSize` parameter.
@@ -198,6 +200,7 @@ Blob Garbage Collection(GC) is applicabl
* FileDataStore
* S3DataStore
* SharedS3DataStore (since Oak 1.2.0)
+ * AzureDataStore
Oak implements a Mark and Sweep based Garbage Collection logic.
@@ -224,7 +227,7 @@ The garbage collection can be triggered
<a name="blobid-tracker"></a>
#### Caching of Blob ids locally (Oak 1.6.x)
-For the `FileDataStore` and `S3DataStore` the blob ids are cached locally on
the disk when they are created which
+For the `FileDataStore`, `S3DataStore` and `AzureDataStore` the blob ids are
cached locally on the disk when they are created which
speeds up the 'Mark BlobStore' phase. The locally tracked ids are synchronized
with the data store periodically to enable
other cluster nodes or different repositories sharing the datastore to get a
consolidated list of all blob ids. The
interval of synchronization is defined by the OSGi configuration parameter
`blobTrackSnapshotIntervalInSecs` for the
@@ -249,13 +252,14 @@ following should be executed.
##### Registration
-On start of a repository configured to use a shared DataStore (same path or S3
bucket), a unique repository id is
+On start of a repository configured to use a shared DataStore (same path, S3
bucket or Azure container), a unique repository id is
generated and registered in the NodeStore as well as the DataStore.
In the DataStore this repository id is registered as an empty file with the
format `repository-[repository-id]`
(e.g. repository-988373a0-3efb-451e-ab4c-f7e794189273). This empty file is
created under:
* FileDataStore - Under the root directory configured for the datastore.
* S3DataStore - Under `META` folder in the S3 bucket configured.
+* AzureDataStore - Under `META` folder in the Azure container configured.
On start/configuration of all the repositories sharing the data store it
should be confirmed that the unique
repositoryId per repository is registered in the DataStore. Refer the section
below on [Checking Shared GC status](#check-shared-datastore-gc).
@@ -387,6 +391,7 @@ the steps:
* Remove the corresponding registered repository file
(`repository-[repositoryId]`) from the DataStore
* FileDataStore - Remove the file from the data store root directory.
* S3DataStore - Remove the file from the `META` folder of the S3 bucket.
+ * AzureDataStore - Remove the file from the `META` folder of the Azure
container.
* Remove other files corresponding to the particular repositoryId e.g.
`markedTimestamp-[repositoryId]` or
`references-[repositoryId]`.
Modified: jackrabbit/oak/branches/1.6/oak-parent/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-parent/pom.xml?rev=1793609&r1=1793608&r2=1793609&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-parent/pom.xml (original)
+++ jackrabbit/oak/branches/1.6/oak-parent/pom.xml Wed May 3 05:20:45 2017
@@ -177,6 +177,7 @@
<filter>!org.apache.jackrabbit.oak.spi.blob.split</filter>
<filter>!org.apache.jackrabbit.oak.spi.blob.stats</filter>
<filter>!org.apache.jackrabbit.oak.blob.cloud.aws.s3</filter>
+
<filter>!org.apache.jackrabbit.oak.blob.cloud.azure.blobstorage</filter>
<filter>!org.apache.jackrabbit.oak</filter>
<filter>!org.apache.jackrabbit.oak.json</filter>
<filter>!org.apache.jackrabbit.oak.management</filter>
Modified: jackrabbit/oak/branches/1.6/pom.xml
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/pom.xml?rev=1793609&r1=1793608&r2=1793609&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/pom.xml (original)
+++ jackrabbit/oak/branches/1.6/pom.xml Wed May 3 05:20:45 2017
@@ -40,6 +40,7 @@
<module>oak-commons</module>
<module>oak-blob</module>
<module>oak-blob-cloud</module>
+ <module>oak-blob-cloud-azure</module>
<module>oak-core</module>
<module>oak-jcr</module>
<module>oak-upgrade</module>