On Sun, Nov 10, 2013 at 8:32 PM, Samisa Abeysinghe <[email protected]> wrote: > 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) Have we checked the possibility of having multiple workspace per requests and having Subdirectory Checkouts with git sparse-checkout? Even implementing the server side upload api to add blobs to git database also possible[0]. >> >> 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 > [0]http://developer.github.com/v3/git/commits/#create-a-commit
-- ajanthan -- Ajanthan Balachandiran Senior Software Engineer; Solutions Technologies Team ;WSO2, Inc.; http://wso2.com/ email: [email protected]; cell: +94775581497 blog: http://bkayts.blogspot.com/ Lean . Enterprise . Middleware _______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
