Matt Ryan created OAK-4933:
------------------------------

             Summary: Create a data store implementation that integrates with 
Microsoft Azure Blob Storage
                 Key: OAK-4933
                 URL: https://issues.apache.org/jira/browse/OAK-4933
             Project: Jackrabbit Oak
          Issue Type: Epic
          Components: blob, core
            Reporter: Matt Ryan


This epic proposes the creation of a new type of Oak data store, 
AzureDataStore, that offers an integration between Oak and Microsoft Azure Blob 
Storage.  AzureDataStore would be very similar in purpose and functionality to 
S3DataStore, with a different backend that uses Azure Blob Storage instead of 
S3.

Some initial exploration into this concept can be seen in my github here:  
https://github.com/mattvryan/jackrabbit-oak/tree/azure-blob-store

More info about Azure Blob Storage:
* [Java 
SDK|https://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-blob-storage/]
* [Javadoc|http://azure.github.io/azure-storage-java/]
* [Source|https://github.com/azure/azure-storage-java] (GitHub) - Microsoft's 
Azure Storage Java SDK is open source and Apache licensed
* [Package 
info|https://mvnrepository.com/artifact/com.microsoft.azure/azure-storage] on 
mvnrepository.com

As I see it, the following work would be required:
* Create an AzureDataStore class that extends CachingDataStore
* Create a new backend for Azure Blob Storage
* Comprehensive unit testing of the new data store and backend classes
* Create test "mocks" for the necessary Azure Storage classes to facilitate 
unit testing (they are all final classes and cannot be mocked directly)
* Create SharedAzureDataStore class
* Create AzureDataStoreService class
* Implement similar JMX metrics as exist for S3DataStore
* Combine and refactor existing Oak code with newly added code to make best 
reuse of existing code, etc.
* Integration testing with system configured with AzureDataStore, comparison w/ 
S3DataStore in terms of performance and correctness
* Modify Azure Storage SDK code to make it into a valid OSGi bundle, and submit 
these changes back to that project (currently it is not an OSGi bundle and 
therefore currently has to be embedded)

List isn't purported to be comprehensive of course.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to