Hi Sagara, Thanks for reviewing it. Done with the changes pointed by Venura.
https://wso2.org/jira/browse/DS-844 Thanks On Sun, Jan 12, 2014 at 10:27 PM, Sagara Gunathunga <[email protected]> wrote: > > > Hi Chanika, > > Numbers seems OK but try to incorporate String improvements suggested by > Venura > to improve performance further. Other than that I'm OK with your fix > please go ahead with this and also don't forget to add descriptive comment > about HTTP_LOCATION_TABLE_FOR_RESOURCE and what it does etc within Axis2 > code. > > > Thanks ! > > > On Tue, Jan 7, 2014 at 10:34 AM, Venura Kahawala <[email protected]> wrote: > >> Hi Chanika, >> >> IMO we can do little improvements to your code. >> >> 1. Please use string constants in 'getRegexForLocation' method. >> 2. In 'getRegexForLocation' method you can use StringBuilder.append >> instead of concatenating strings with "+" operator >> 3. In 'getRegexForLocation' you can use *StringTokenizer *instead of >> split operation since you are iterating through the split array. >> >> Regards, >> Venura >> >> >> On Mon, Jan 6, 2014 at 8:54 PM, Chanika Geeganage <[email protected]>wrote: >> >>> Please find the attached diff files for the changes done, as per the >>> offline chat had with Sagara regarding this problem. >>> >>> Here are the load test results >>> >>> >>> No of Threads Without the fix (tps) With >>> the fix (tps) >>> 1 >>> 410 400 >>> 5 >>> 2100 2080 >>> 100 >>> 6260 6250 >>> >>> Thanks >>> >>> >>> On Sat, Jan 4, 2014 at 8:51 AM, Chanika Geeganage <[email protected]>wrote: >>> >>>> >>>> >>>> >>>> On Sat, Jan 4, 2014 at 6:30 AM, Sagara Gunathunga <[email protected]>wrote: >>>> >>>>> >>>>> >>>>> >>>>> On Fri, Jan 3, 2014 at 5:06 PM, Chanika Geeganage <[email protected]>wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> To fix that properly, we can compile the regex at deployment time and >>>>>> keep that compiled pattern as the key. But that will break the exciting >>>>>> code because of API changes. It is a utill class and as others are using >>>>>> it >>>>>> we can't change the API. >>>>>> >>>>> >>>>> >>>>> Shall we have a chat on this Monday morning ? Let's see whether we >>>>> can find another workaround. >>>>> >>>> >>>> Sure. Will do >>>> >>>>> >>>>> >>>>> Thanks ! >>>>> >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> On Fri, Jan 3, 2014 at 4:07 PM, Samisa Abeysinghe <[email protected]>wrote: >>>>>> >>>>>>> Is there any other way to fix the perf drop while fixing the issue? >>>>>>> >>>>>>> Thanks, >>>>>>> Samisa... >>>>>>> >>>>>>> >>>>>>> Samisa Abeysinghe >>>>>>> >>>>>>> Vice President Developer Evangelism >>>>>>> >>>>>>> WSO2 Inc. >>>>>>> http://wso2.com >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Jan 3, 2014 at 3:36 PM, Chanika Geeganage >>>>>>> <[email protected]>wrote: >>>>>>> >>>>>>>> Hi Samisa, >>>>>>>> >>>>>>>> The fix is for a issue occurred when we define multiple resources >>>>>>>> in a data service with the same resource name. For an example lets say >>>>>>>> we >>>>>>>> want to define following resources in a data service. (This is >>>>>>>> described in >>>>>>>> this thread) >>>>>>>> >>>>>>>> >>>>>>>> products/{id} >>>>>>>> products/{id}/name/{name} >>>>>>>> >>>>>>>> The current implementation does not give the desired output as it >>>>>>>> keeps only the resource name as the key. According to the given fix it >>>>>>>> keeps a regex as the key and it compiles all regex in the map each >>>>>>>> time we >>>>>>>> invoke a request. That is why there is a performance drop. >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Jan 3, 2014 at 3:20 PM, Samisa Abeysinghe >>>>>>>> <[email protected]>wrote: >>>>>>>> >>>>>>>>> Why do we have a drop of TPS with the fix? Should we not optimize >>>>>>>>> this for better performance? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Samisa... >>>>>>>>> >>>>>>>>> >>>>>>>>> Samisa Abeysinghe >>>>>>>>> >>>>>>>>> Vice President Developer Evangelism >>>>>>>>> >>>>>>>>> WSO2 Inc. >>>>>>>>> http://wso2.com >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Jan 3, 2014 at 1:28 PM, Chanika Geeganage < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Here I have attached the changed code for the suggested solution >>>>>>>>>> (using a regex as the key). I ran some load tests and the results are >>>>>>>>>> listed below. >>>>>>>>>> >>>>>>>>>> No of Threads Without the fix (tps) >>>>>>>>>> With the fix (tps) >>>>>>>>>> 1 >>>>>>>>>> 410 315 >>>>>>>>>> 5 >>>>>>>>>> 2010 1900 >>>>>>>>>> 100 >>>>>>>>>> 6260 6200 >>>>>>>>>> >>>>>>>>>> Is it OK to proceed with this fix? >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Dec 19, 2013 at 7:37 AM, Chanika Geeganage < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Sameera, >>>>>>>>>>> >>>>>>>>>>> getConstantFromHTTPLocation method in [1] is used to maintain >>>>>>>>>>> the map in deployment time and getOperationFromHTTPLocation method >>>>>>>>>>> is >>>>>>>>>>> called when you invoke the rest service in [2] >>>>>>>>>>> >>>>>>>>>>> [1] >>>>>>>>>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/kernel/src/org/apache/axis2/wsdl/WSDLUtil.java >>>>>>>>>>> >>>>>>>>>>> [2] >>>>>>>>>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/kernel/src/org/apache/axis2/dispatchers/HTTPLocationBasedDispatcher.java >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Thu, Dec 19, 2013 at 12:51 AM, Sameera Jayasoma < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Chanika, >>>>>>>>>>>> >>>>>>>>>>>> Can you please gimme me some pointers to the relevant code >>>>>>>>>>>> blocks which are responsible for this situation? >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Sameera. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Dec 18, 2013 at 3:29 PM, Chanika Geeganage < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> This issue was come across when we invoke a rest resource >>>>>>>>>>>>> deployed in DSS. According to the current implementation it fails >>>>>>>>>>>>> to >>>>>>>>>>>>> delegate different requests for same base URL. For an example >>>>>>>>>>>>> lets say we >>>>>>>>>>>>> want to have following resources in the dataservice config >>>>>>>>>>>>> >>>>>>>>>>>>> products/{id} >>>>>>>>>>>>> products/{id}/name/{name} >>>>>>>>>>>>> >>>>>>>>>>>>> According to the current implementation it maintains a map to >>>>>>>>>>>>> keep the resource info in the deployment time. It keeps a string >>>>>>>>>>>>> of the >>>>>>>>>>>>> HTTP method + the resource name as the key and the relevant axis2 >>>>>>>>>>>>> operation as the value. Therefore in the example both resources >>>>>>>>>>>>> having the >>>>>>>>>>>>> same key and the value is replaced by the last one. >>>>>>>>>>>>> >>>>>>>>>>>>> So as a solution, a regex for the resource is kept in the map >>>>>>>>>>>>> as the key, and when we invoke the resource it compares the regex >>>>>>>>>>>>> with the >>>>>>>>>>>>> request url. But this will hit a performance issue, as we have to >>>>>>>>>>>>> compile >>>>>>>>>>>>> all regex in the map each time we invoke resource. >>>>>>>>>>>>> >>>>>>>>>>>>> Any input regarding this is appreciated. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks >>>>>>>>>>>>> -- >>>>>>>>>>>>> Best Regards.. >>>>>>>>>>>>> >>>>>>>>>>>>> Chanika Geeganage >>>>>>>>>>>>> Software Engineer >>>>>>>>>>>>> WSO2, Inc.; http://wso2.com >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Sameera Jayasoma, >>>>>>>>>>>> Architect, >>>>>>>>>>>> >>>>>>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>>>>>> email: [email protected] >>>>>>>>>>>> blog: http://sameera.adahas.org >>>>>>>>>>>> twitter: https://twitter.com/sameerajayasoma >>>>>>>>>>>> flickr: >>>>>>>>>>>> http://www.flickr.com/photos/sameera-jayasoma/collections >>>>>>>>>>>> Mobile: 0094776364456 >>>>>>>>>>>> >>>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>> [email protected] >>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Best Regards.. >>>>>>>>>>> >>>>>>>>>>> Chanika Geeganage >>>>>>>>>>> Software Engineer >>>>>>>>>>> WSO2, Inc.; http://wso2.com >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Best Regards.. >>>>>>>>>> >>>>>>>>>> Chanika Geeganage >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2, Inc.; http://wso2.com >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> 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 >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best Regards.. >>>>>>>> >>>>>>>> Chanika Geeganage >>>>>>>> Software Engineer >>>>>>>> WSO2, Inc.; http://wso2.com >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> 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 >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best Regards.. >>>>>> >>>>>> Chanika Geeganage >>>>>> Software Engineer >>>>>> WSO2, Inc.; http://wso2.com >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Sagara Gunathunga >>>>> >>>>> Senior Technical Lead; WSO2, Inc.; http://wso2.com >>>>> V.P Apache Web Services; http://ws.apache.org/ >>>>> Linkedin; http://www.linkedin.com/in/ssagara >>>>> Blog ; http://ssagara.blogspot.com >>>>> >>>>> >>>> >>>> >>>> -- >>>> Best Regards.. >>>> >>>> Chanika Geeganage >>>> Software Engineer >>>> WSO2, Inc.; http://wso2.com >>>> >>>> >>> >>> >>> -- >>> Best Regards.. >>> >>> Chanika Geeganage >>> Software Engineer >>> WSO2, Inc.; http://wso2.com >>> >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> Senior Software Engineer >> >> Mobile: +94 71 82 300 20 >> >> > > > -- > Sagara Gunathunga > > Senior Technical Lead; WSO2, Inc.; http://wso2.com > V.P Apache Web Services; http://ws.apache.org/ > Linkedin; http://www.linkedin.com/in/ssagara > Blog ; http://ssagara.blogspot.com > > -- Best Regards.. Chanika Geeganage Software Engineer WSO2, Inc.; http://wso2.com
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
