What are the time costs implied by these alternatives? Meaning how much time between user action and the time it is really ready to use.
What are the implications on the async mode of operation? Meaning, when would the user be notified of the availability and how? Thanks, Samisa... Samisa Abeysinghe Vice President Training WSO2 Inc. http://wso2.com On Fri, Nov 8, 2013 at 11:21 AM, Ramith Jayasinghe <[email protected]> wrote: > Hi, > The way its was implemented is to clone the artifact repository ( a.k.a > S2 Git repo) to a fixed directory (there is one for each tenant) every time > when there is a need to deploy an artifact. > > However, suppose a situation users of a tenant trying to deploy multiple > artifacts in parallel. > What we observed during such scenario is that none of the artifacts get > committed (and pushed) to git repository. This means artifact deployment > fails for everyone of that tenant. > > > The most easiest may of fixing this is > 1. atomically create an temporary directory > 2. clone the git repository onto that directory > 3. copy the new artifact to correct location ( - possibly replacing > existing artifact with the same name) > 4. Git add -> git commit -> git push. > 5. Delete the temporary directory. > > Now this fix is already done (and some other bugs) with svn revision: > 189685 and relevant issue is https://wso2.org/jira/browse/APPFAC-1630 > > HOWEVER, This will introduce a major problem because it always *clones > the entire git repository* each time an artifact is deployed. Given that > in a real world scenario this git repository can be comparatively big ( > with lots of artifacts already existing in the git repo). > > One possible way to fix this problem would be to *serialize each > deployment request using a queue* ( which exists in Appfactory plugin we > wrote for jenkins). and switch back to keeping a fixed location to clone > the git repository ( - the previous scheme) > > Couple of things we need to take into account when we do this: > 1. Artifacts deployed by a tenant can end up in different runtimes. > E.g. Esb artifacts goes to ESB runtime while webapps, jaxrs, goes > to AS. > > So we need to maintain directory per runtime (or application type). > Otherwise we will end up having web applications committed to a git > repository meant for ESB! > E.g. <tempdir>/war , <tempdir>/esb/, <tempdir>/php > > 2. Code surrounding Appfactory-Plugin can needs to be > re-factored/Improved. > > > 3. Re-visit the logic surrounding the way we deploy ESB artifacts to > figure out are there any additional file types that needs to deploy (- and > there location). Currently it assumes only xml files. > > Any thoughts? > > > > -- > Ramith Jayasinghe > Technical Lead > WSO2 Inc., http://wso2.com > lean.enterprise.middleware > > E: [email protected] > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > >
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
