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

Reply via email to