You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/04/20 06:12:00 UTC

[GitHub] chetanmeh opened a new pull request #3562: ArtifactStore implementation for CosmosDB

chetanmeh opened a new pull request #3562: ArtifactStore implementation for CosmosDB
URL: https://github.com/apache/incubator-openwhisk/pull/3562
 
 
   This PR provides a `CosmosDBArtifactStore` implementation to enable using CosmosDB for storing subjects, whisks and activation in [Azure CosmosDB][1]
   
   This is currently work in progress and opening this early so as to get feedback on design progress
   
   ## Description
   
   Currently OpenWhisk supports CouchDB for storing various entities like actions, rules, subjects, activations etc. This PR provides a [CosmosDB][1] based implementation for ArtifactStore SPI
   
   ### Usage of CosmosDB Java SDK
   
   CosmosDB supports various modes to connect to it. For our usage we have two options
   
   1. [REST API][2]
   2. [Async Java SDK][3]
   3. [Sync Java SDK][6]
   
   Compared to CouchDB performing queries against CosmosDB requires client side computation which involves sending queries to each partition and then collect and merge the result set. The Async Java SDK takes care of all these interactions and provides a simplified reactive api based on [RxJava][5]
   
   Given the complexity involved in performing various operations against CosmosDB this PR uses the Java SDK to simplify and speed up the implementation
   
   ### Design Considerations
   
   #### Partitioning Strategy
   
   TBD
   
   #### Query Execution
   
   TBD
   
   #### Attachment Storage
   
   TBD
   
   #### Testing Approach
   
   TBD
   
   ## Related issue and scope
   
   
   ## My changes affect the following components
   
   - [x] Data stores (e.g., CouchDB)
   - [X] Tests
   - [x] Deployment
   - [X] Documentation
   
   ## Types of changes
   
   - [x] Enhancement or new feature (adds new functionality).
   
   ## Checklist:
   
   - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md).
   - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :).
   - [x] I added tests to cover my changes.
   - [ ] My changes require further changes to the documentation.
   - [ ] I updated the documentation where necessary.
   
   [1]: https://docs.microsoft.com/en-us/azure/cosmos-db/
   [2]: https://docs.microsoft.com/en-us/rest/api/documentdb/restful-interactions-with-documentdb-resources
   [3]: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sdk-async-java
   [4]: https://github.com/Azure/azure-cosmosdb-java
   [5]: https://github.com/ReactiveX/RxJava
   [6]: https://github.com/Azure/azure-documentdb-java

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services