Hi Venkat,

Good progress indeed!
Shall we do a demo/review on the current status and prioritize the features
that we expect for the final evaluation.
IsuruR will help you with arranging the meeting.

On Mon, Jun 27, 2016 at 9:19 PM, Venkat Raman <[email protected]> wrote:

> Hi Isuru,
>
> Good morning.  I'm currently working on few validations and writing
> unit-test cases.
>
> Kindly find the attached document of TODO list.  If there is anything more
> kindly let me know.
>
>
>
>
> *Thanks,*
> *Venkat.*
>
> On Tue, Jun 28, 2016 at 1:09 AM, Venkat Raman <[email protected]>
> wrote:
>
>> Hi All,
>>
>> It's been a great journey with WSO2 community !!  I've passed my mid-term
>> evaluations. :D
>>
>> Thanks for your feedback IsuruR.  And sure, I will keep improving OOP
>> knowledge and analytical thinking.
>>
>> Will be working with same pace and dedication to make our project
>> successful.  It's been a great learning so far.
>>
>> Would also like to thank IsuruR, Senduran, IsuruU, Ravi and Kasun for
>> their valuable support and guidance :)
>>
>>
>>
>> *Thanks,*
>> *Venkat.*
>>
>> On Sat, Jun 25, 2016 at 3:10 PM, Venkat Raman <[email protected]>
>> wrote:
>>
>>> Hi Isuru,
>>>
>>> Good morning.  Please find 5th week's progress.
>>>
>>> Algorithm : Weighted Round Robin and Weighted Random algorithms.  Kindly
>>> note that Client IP Hashing based is not supported for weighted algorithms.
>>>
>>> In the following weeks, I'm planning to write Unit Test cases.  Once
>>> HTTPS support is added, I'll add it to LB.
>>>
>>> Also find the attached Updated mid-term evaluation document.
>>>
>>> Kindly note that Tuesday early morning (12:30 A.M) is the last date, for
>>> submitting mid-term evaluations.
>>>
>>>
>>>
>>> *Thanks,*
>>> *Venkat.*
>>>
>>> On Tue, Jun 21, 2016 at 12:43 PM, Venkat Raman <[email protected]>
>>> wrote:
>>>
>>>> Hi Isuru,
>>>>
>>>> I've submitted my Mid - Term evaluation.  It would be great if you
>>>> could share your feedback with me once you complete it.
>>>>
>>>> Also, I'm looking forward for our code review.
>>>>
>>>>
>>>>
>>>>
>>>> *Thanks,*
>>>> *Venkat.*
>>>>
>>>> On Mon, Jun 20, 2016 at 9:28 AM, Venkat Raman <[email protected]>
>>>> wrote:
>>>>
>>>>> Ok Isuru. Looking forward to it :)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *Thanks,*
>>>>> *Venkat.*
>>>>>
>>>>> On Mon, Jun 20, 2016 at 9:21 AM, Isuru Ranawaka <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi Venkat,
>>>>>>
>>>>>> Good progress. I will schedule a call or code review within this
>>>>>> week.
>>>>>>
>>>>>> thanks
>>>>>>
>>>>>> On Mon, Jun 20, 2016 at 9:18 AM, Venkat Raman <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Isuru,
>>>>>>>
>>>>>>> Good morning.  Kindly find the 4th week's progress.
>>>>>>>
>>>>>>> 1) Algorithm : a)  Least Response Time
>>>>>>>
>>>>>>>     Response time of endpoints is calculated by Running Average of
>>>>>>> response time.  By this value, load will be balanced in such a way that,
>>>>>>> endpoints high Running average of response time will have less load
>>>>>>> directed to it and vice versa.  However, persistence will be maintained.
>>>>>>>
>>>>>>>                     b) Random
>>>>>>>     Endpoints will be chosen Randomly. Persistence will be
>>>>>>> maintained though.
>>>>>>>
>>>>>>>
>>>>>>> 2) Health Checking : Healthy Endpoint detection.
>>>>>>>
>>>>>>>    Once an Endpoint is back from unHealthy to Healthy state, LB will
>>>>>>> be able to detect it and direct further incoming traffic to it.
>>>>>>>
>>>>>>> Kindly note that there is a small deviation from my proposal.  In
>>>>>>> proposal I have mentioned that I'll also be implementing Least 
>>>>>>> Connections
>>>>>>> Algorithm.  It is possible if we are load balancing on per service 
>>>>>>> basis.
>>>>>>> With load balancing based on per endpoint basis, it will not be 
>>>>>>> possible to
>>>>>>> implement it because, we will not have context outside of a specific 
>>>>>>> iFlow
>>>>>>> file.  Instead, I have implemented Strict IP Hashing and Random 
>>>>>>> algorithms
>>>>>>> which I have mentioned in IF TIME PERMITS section of my proposal.
>>>>>>>
>>>>>>> This week, I am planning to implement Weighted Round Robin.
>>>>>>>
>>>>>>> As mentioned earlier, I am waiting for HTTPS support to be included
>>>>>>> in carbon-gateway-framework repo.
>>>>>>>
>>>>>>> I'll also be sending you a document that has consolidated list of
>>>>>>> all the work that I have done so far, so that it'll be easier for you
>>>>>>> during mid-term evaluations.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *Thanks,*
>>>>>>> *Venkat.*
>>>>>>>
>>>>>>> On Mon, Jun 13, 2016 at 11:03 AM, Venkat Raman <[email protected]
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Hi Isusu,
>>>>>>>>
>>>>>>>> Good morning.  Kindly find the 3rd weeks progress.
>>>>>>>>
>>>>>>>> 1) Algorithm : StrictClientIPHashing
>>>>>>>>
>>>>>>>>    This algorithm uses Client's IP address hashing technique to
>>>>>>>> determine OutboundEndpoint. If Client's IP address is not available in
>>>>>>>> request header, request will be discarded.
>>>>>>>>
>>>>>>>> 2) Persistence policy : ClientIPHahsing.
>>>>>>>>
>>>>>>>>     Same as algorithm. But if Client's IP address is not available
>>>>>>>> in header, instead of discarding the request, OutboundEndpoint will be
>>>>>>>> chosen based on specified algorithm.
>>>>>>>>
>>>>>>>> 3) Implemented LBOutboundEndpoint. (as we discussed in call)
>>>>>>>>
>>>>>>>>   It'll be used inside LB. It will have reference for
>>>>>>>> OutboundEndpoint (HTTP or HTTPS) along with other attributes like
>>>>>>>> healthyFlag, unHealthyRetriesCount, healthyRetriesCount and weights 
>>>>>>>> (will
>>>>>>>> be added in future) for weighted      implementations of certain 
>>>>>>>> algorithms.
>>>>>>>>
>>>>>>>> 4) UnHealthy endpoint detection.
>>>>>>>>
>>>>>>>>     I'm using ConcurrentHashMap to store RequestCallBacks
>>>>>>>> (CallBackPool). If response is received from OutboundEndpoint within
>>>>>>>> specified timeOut, the corresponding callBack will be removed from 
>>>>>>>> pool.
>>>>>>>> If callBack object is still available in callBack pool, it means that 
>>>>>>>> it
>>>>>>>> has been timed out. A separate handler will be periodically checking 
>>>>>>>> for
>>>>>>>> this.  In such cases HTTP Error Code 504 : "Gateway Timeout" will be 
>>>>>>>> sent
>>>>>>>> back to client. If unHealthyRetries count has been reached, that 
>>>>>>>> endpoint
>>>>>>>> will be marked as unHealthy and it will not be chosen by algorithms 
>>>>>>>> till it
>>>>>>>> is back to healthy.  Kindly note that any other error response from 
>>>>>>>> BackEnd
>>>>>>>> will be directly sent back to client. LB will not handle those errors 
>>>>>>>> as
>>>>>>>> it'll be application specific.
>>>>>>>>
>>>>>>>> Now, I'm working Healthy Endpoint detection. i.e., when an endpoint
>>>>>>>> is back from unHealthy to Healthy state, LB should detect it 
>>>>>>>> automatically
>>>>>>>> and choose that endpoint for further requests.
>>>>>>>>
>>>>>>>> Also, I'm expecting this to be completed by this week.  It would be
>>>>>>>> great if you could add HTTPS support in Carbon-Gateway-Framework by 
>>>>>>>> next
>>>>>>>> week so that I can proceed with that.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> *Thanks,*
>>>>>>>> *Venkat.*
>>>>>>>>
>>>>>>>> On Tue, Jun 7, 2016 at 12:14 PM, Venkat Raman <[email protected]
>>>>>>>> > wrote:
>>>>>>>>
>>>>>>>>> Hi Isuru,
>>>>>>>>>
>>>>>>>>> I've completed client IP hashing based persistence.  Now I'm
>>>>>>>>> working on HealthCheck Implementation.  Kindly find the here.
>>>>>>>>> <https://github.com/Venkat2811/product-http-load-balancer>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *Thanks,*
>>>>>>>>> *Venkat.*
>>>>>>>>>
>>>>>>>>> On Mon, Jun 6, 2016 at 11:18 AM, Venkat Raman <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Isuru,
>>>>>>>>>>
>>>>>>>>>> Good morning.  Kindly find the 2nd week's progress
>>>>>>>>>>
>>>>>>>>>> 1) Implementation of Cookie based persistence
>>>>>>>>>>     a) LB cookie will be appended with the cookie in response to
>>>>>>>>>> maintain persistence. So this has the same timeout and other 
>>>>>>>>>> properties of
>>>>>>>>>> that cookie.
>>>>>>>>>>     b) There won't be any cookie in response from backend.  So,
>>>>>>>>>> LB will insert its own cookie (session cookie).  It will be valid 
>>>>>>>>>> till
>>>>>>>>>> client browser is closed.
>>>>>>>>>>
>>>>>>>>>> 2) Laid ground work for Client IP Hashing based persistence.
>>>>>>>>>>
>>>>>>>>>> This week I'll be continuing to work on Client IP hashing.
>>>>>>>>>>
>>>>>>>>>> Your feedback would be very valuable and critical at this point.
>>>>>>>>>> Will be looking forward to hear from you.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Thanks,*
>>>>>>>>>> *Venkat.*
>>>>>>>>>>
>>>>>>>>>> On Thu, Jun 2, 2016 at 12:02 PM, Venkat Raman <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi IsuruR,
>>>>>>>>>>>
>>>>>>>>>>> I've added session persistence support Application & LB specific
>>>>>>>>>>> cookie.  Kindly find it in the repo here
>>>>>>>>>>> <https://github.com/Venkat2811/product-http-load-balancer>.
>>>>>>>>>>>
>>>>>>>>>>> Now, I am planning to start with Client IP hashing based
>>>>>>>>>>> persistence.
>>>>>>>>>>>
>>>>>>>>>>> Will be looking forward for your feedback. :)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Thanks,*
>>>>>>>>>>> *Venkat.*
>>>>>>>>>>>
>>>>>>>>>>> On Tue, May 31, 2016 at 3:21 PM, Venkat Raman <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> I'm implementing cookie based persistence. I have found various
>>>>>>>>>>>> JAVA libriaries that support HTTP Cookies.
>>>>>>>>>>>>
>>>>>>>>>>>> 1) Netty Cookie link
>>>>>>>>>>>> <http://netty.io/4.0/api/io/netty/handler/codec/http/cookie/Cookie.html#name()>
>>>>>>>>>>>>
>>>>>>>>>>>>      Expiration date is not supported. Not supporting
>>>>>>>>>>>> toString() method, so, I have to write my custom toString 
>>>>>>>>>>>> conversion method
>>>>>>>>>>>> so that I can add it to carbonMessage header.
>>>>>>>>>>>>
>>>>>>>>>>>> 2) Javax Cookie link
>>>>>>>>>>>> <http://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html>
>>>>>>>>>>>>
>>>>>>>>>>>>       Expiration date is not supported. Javax is not supporting
>>>>>>>>>>>> toString() method so same case as Netty
>>>>>>>>>>>>
>>>>>>>>>>>> 3) java.net.HttpCookie link
>>>>>>>>>>>> <https://docs.oracle.com/javase/7/docs/api/java/net/HttpCookie.html>
>>>>>>>>>>>> .
>>>>>>>>>>>>
>>>>>>>>>>>>       Supports toString().  But HTTPOnly has to appended
>>>>>>>>>>>> manually. Expiration date is not supported.
>>>>>>>>>>>>
>>>>>>>>>>>> 4) Apache commons http client Cookie link
>>>>>>>>>>>> <http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/Cookie.html>
>>>>>>>>>>>>
>>>>>>>>>>>>      Supports RFC Date for specifying expiration and toString()
>>>>>>>>>>>> is also supported.
>>>>>>>>>>>>
>>>>>>>>>>>> So shall I use Apache Commons http Client cookie..??
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *Thanks,*
>>>>>>>>>>>> *Venkat.*
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, May 30, 2016 at 10:42 AM, Venkat Raman <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Ok Isuru.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Thanks,*
>>>>>>>>>>>>> *Venkat.*
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, May 30, 2016 at 10:34 AM, Isuru Ranawaka <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Venkat.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Good.I will look at the implementation and setup a call for
>>>>>>>>>>>>>> discuss next steps.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> thanks
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Mon, May 30, 2016 at 10:27 AM, Venkat Raman <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Isuru,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Good morning :) . Kindly find the 1st week's progress.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 1) Implementation of Round-Robin algorithm for Outbound
>>>>>>>>>>>>>>> Endpoints.
>>>>>>>>>>>>>>> 2) Round-Robin algorithm with group support, but one .iflow
>>>>>>>>>>>>>>> config file can have only one group as of now as mentioned 
>>>>>>>>>>>>>>> earlier.
>>>>>>>>>>>>>>> 3) Few input validations.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Kindly find the repo here.
>>>>>>>>>>>>>>> <https://github.com/Venkat2811/product-http-load-balancer>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> In proposal I've mentioned that I'll be covering HTTPS 2nd
>>>>>>>>>>>>>>> week,since it'll be made available later in 
>>>>>>>>>>>>>>> carbon-gateway-framework repo,
>>>>>>>>>>>>>>> I'm planning to proceed with adding session persistence.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Will be looking forward for your feedback.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> *Thanks,*
>>>>>>>>>>>>>>> *Venkat.*
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, May 25, 2016 at 8:57 PM, Venkat Raman <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Ravi,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you for the clear explanation :) .  Yes, I added
>>>>>>>>>>>>>>>> appropriate log statements and I was able to understand the 
>>>>>>>>>>>>>>>> flow and I am
>>>>>>>>>>>>>>>> clear with it now.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> *Thanks,*
>>>>>>>>>>>>>>>> *Venkat.*
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Wed, May 25, 2016 at 8:09 PM, Ravi Undupitiya <
>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hi Venkat,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Please find answers inline below.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Tue, May 24, 2016 at 9:29 PM, Venkat Raman <
>>>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 1) Why are we pushing variables in carbon message
>>>>>>>>>>>>>>>>>> variables stack..??
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> One of the features of the language is to have variables
>>>>>>>>>>>>>>>>> we can declare and use throughout the mediation flow. We are 
>>>>>>>>>>>>>>>>> able to
>>>>>>>>>>>>>>>>> populate variables during loading and during runtime and so 
>>>>>>>>>>>>>>>>> variable stack
>>>>>>>>>>>>>>>>> is kept inside the carbon message so each thread has its own 
>>>>>>>>>>>>>>>>> variable
>>>>>>>>>>>>>>>>> stack. Hope that clarifies.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> 2) Also could you kindly explain how
>>>>>>>>>>>>>>>>>> AbstractFlowController and FlowControllerCallback are 
>>>>>>>>>>>>>>>>>> working together.  My
>>>>>>>>>>>>>>>>>> understanding is not quite clear on this.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> AbstractFlowControllers are mediators that require
>>>>>>>>>>>>>>>>> controlling the flow (like filter mediator) where we the 
>>>>>>>>>>>>>>>>> mediation flow
>>>>>>>>>>>>>>>>> branching out, in which case we want to mediate only the 
>>>>>>>>>>>>>>>>> branch we're in
>>>>>>>>>>>>>>>>> and FlowControllerCallback is a CarbonCallback that we pass 
>>>>>>>>>>>>>>>>> on to receive
>>>>>>>>>>>>>>>>> method of mediators of a particular branch. This allows us to 
>>>>>>>>>>>>>>>>> continue
>>>>>>>>>>>>>>>>> mediation from the parent once a branch is complete. You can 
>>>>>>>>>>>>>>>>> test this out
>>>>>>>>>>>>>>>>> by debugging the FilterMediator, try passing on the usual 
>>>>>>>>>>>>>>>>> callback and then
>>>>>>>>>>>>>>>>> check by passing on a FlowControllerCallback.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> @IsuruR, please correct me if I'm wrong. :)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> *Ravi Undupitiya*
>>>>>>>>>>>>>>>>> Senior Software Engineer; WSO2 http://wso2.com
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> *E-mail: [email protected] <http://wso2.com>**M: **+94 772
>>>>>>>>>>>>>>>>> 930 712 <%2B94%C2%A0772%20930%20712>*
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Best Regards
>>>>>>>>>>>>>> Isuru Ranawaka
>>>>>>>>>>>>>> M: +94714629880
>>>>>>>>>>>>>> Blog : http://isurur.blogspot.com/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best Regards
>>>>>> Isuru Ranawaka
>>>>>> M: +94714629880
>>>>>> Blog : http://isurur.blogspot.com/
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>


-- 
Kasun Indrasiri
Software Architect
WSO2, Inc.; http://wso2.com
lean.enterprise.middleware

cell: +94 77 556 5206
Blog : http://kasunpanorama.blogspot.com/
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to