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
