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

Reply via email to