You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Nirmal Fernando <ni...@gmail.com> on 2014/04/29 02:38:43 UTC

[Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Hi All,

Current auto-scaler takes only the 'average' threshold value from a user's
auto-scaling policy. Then inside the scaling related drools rules it
calculates an upper bound and a lower bound by multiplying the average
threshold value by two non-configurable constants.

scaleUp : Boolean() from ((rifReset && (rifPredictedValue > rifAverageLimit
* *0.8*)) || (mcReset && (mcPredictedValue > mcAverageLimit * 0.8)) ||
(laReset && (laPredictedValue > laAverageLimit * 0.8)))
        scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue < mcAverageLimit
* 0.1)) && (laReset && (laPredictedValue < laAverageLimit * 0.1)))

IMO this is a limitation and we could make these constants configurable via
auto-scaling policy.

So, I propose following format to the auto-scaling policy:

{
  "id": "autoscale-policy-1",
  "loadThresholds": {
    "requestsInFlight": {
      "upperLimit": 30,
      "lowerLimit": 5
    },
    "memoryConsumption": {
      "upperLimit": 80,
      "lowerLimit": 50
    },
    "loadAverage": {
      "upperLimit": 100,
      "lowerLimit": 20
    }
  }
}

Then, we can modify the rule to consider user-defined threshold values when
taking the scaling decision.

Let me know your thoughts.

-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
Jira: https://issues.apache.org/jira/browse/STRATOS-645



On Tue, Apr 29, 2014 at 11:32 PM, Nirmal Fernando <ni...@gmail.com>wrote:

> And I don't understand how you eliminate threshold values!
>
>
> On Tue, Apr 29, 2014 at 10:40 PM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> hmm... do we have a discussion on what we are planning to do?
>>
>>
>> On Tue, Apr 29, 2014 at 10:36 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>> Sent from my mobile.
>>>
>>> On Apr 29, 2014 10:29 PM, "Nirmal Fernando" <ni...@gmail.com>
>>> wrote:
>>> >
>>> > Asiri could build on top of my changes, I suppose?
>>>
>>> We can eliminate these factors and threshold limits completely then.
>>>
>>> >
>>> >
>>> > On Tue, Apr 29, 2014 at 10:15 PM, Lahiru Sandaruwan <la...@wso2.com>
>>> wrote:
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <
>>> nirmal070125@gmail.com> wrote:
>>> >>>
>>> >>> Lahiru, this should be ok right?
>>> >>
>>> >>
>>> >> Yes. But for 4.1.0, we will be counting the required number of
>>> instances with proposed Gsoc project by Asiri.
>>> >>>
>>> >>>
>>> >>>
>>> >>> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <
>>> nirmal070125@gmail.com> wrote:
>>> >>>>
>>> >>>> 4.1.0
>>> >>>>
>>> >>>>
>>> >>>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <
>>> lahirus@wso2.com> wrote:
>>> >>>>>
>>> >>>>> Hi Nirmal,
>>> >>>>>
>>> >>>>> Which release do you plan to add this feature?
>>> >>>>>
>>> >>>>> Thanks.
>>> >>>>>
>>> >>>>>
>>> >>>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <
>>> nirmal070125@gmail.com> wrote:
>>> >>>>>>
>>> >>>>>> Hi All,
>>> >>>>>>
>>> >>>>>> Current auto-scaler takes only the 'average' threshold value from
>>> a user's auto-scaling policy. Then inside the scaling related drools rules
>>> it calculates an upper bound and a lower bound by multiplying the average
>>> threshold value by two non-configurable constants.
>>> >>>>>>
>>> >>>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>>> rifAverageLimit * 0.8)) || (mcReset && (mcPredictedValue > mcAverageLimit *
>>> 0.8)) || (laReset && (laPredictedValue > laAverageLimit * 0.8)))
>>> >>>>>>         scaleDown : Boolean() from ((rifReset &&
>>> (rifPredictedValue < rifAverageLimit * 0.1)) && (mcReset &&
>>> (mcPredictedValue < mcAverageLimit * 0.1)) && (laReset && (laPredictedValue
>>> < laAverageLimit * 0.1)))
>>> >>>>>>
>>> >>>>>> IMO this is a limitation and we could make these constants
>>> configurable via auto-scaling policy.
>>> >>>>>>
>>> >>>>>> So, I propose following format to the auto-scaling policy:
>>> >>>>>>
>>> >>>>>> {
>>> >>>>>>   "id": "autoscale-policy-1",
>>> >>>>>>   "loadThresholds": {
>>> >>>>>>     "requestsInFlight": {
>>> >>>>>>       "upperLimit": 30,
>>> >>>>>>       "lowerLimit": 5
>>> >>>>>>     },
>>> >>>>>>     "memoryConsumption": {
>>> >>>>>>       "upperLimit": 80,
>>> >>>>>>       "lowerLimit": 50
>>> >>>>>>     },
>>> >>>>>>     "loadAverage": {
>>> >>>>>>       "upperLimit": 100,
>>> >>>>>>       "lowerLimit": 20
>>> >>>>>>     }
>>> >>>>>>   }
>>> >>>>>> }
>>> >>>>>>
>>> >>>>>> Then, we can modify the rule to consider user-defined threshold
>>> values when taking the scaling decision.
>>> >>>>>>
>>> >>>>>> Let me know your thoughts.
>>> >>>>>>
>>> >>>>>> --
>>> >>>>>> Best Regards,
>>> >>>>>> Nirmal
>>> >>>>>>
>>> >>>>>> Nirmal Fernando.
>>> >>>>>> PPMC Member & Committer of Apache Stratos,
>>> >>>>>> Senior Software Engineer, WSO2 Inc.
>>> >>>>>>
>>> >>>>>> Blog: http://nirmalfdo.blogspot.com/
>>> >>>>>
>>> >>>>>
>>> >>>>>
>>> >>>>>
>>> >>>>> --
>>> >>>>> --
>>> >>>>> Lahiru Sandaruwan
>>> >>>>> Committer and PPMC member, Apache Stratos(incubating),
>>> >>>>> Senior Software Engineer,
>>> >>>>> WSO2 Inc., http://wso2.com
>>> >>>>> lean.enterprise.middleware
>>> >>>>>
>>> >>>>> email: lahirus@wso2.com cell: (+94) 773 325 954
>>> >>>>> blog: http://lahiruwrites.blogspot.com/
>>> >>>>> twitter: http://twitter.com/lahirus
>>> >>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>> >>>>>
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> --
>>> >>>> Best Regards,
>>> >>>> Nirmal
>>> >>>>
>>> >>>> Nirmal Fernando.
>>> >>>> PPMC Member & Committer of Apache Stratos,
>>> >>>> Senior Software Engineer, WSO2 Inc.
>>> >>>>
>>> >>>> Blog: http://nirmalfdo.blogspot.com/
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Best Regards,
>>> >>> Nirmal
>>> >>>
>>> >>> Nirmal Fernando.
>>> >>> PPMC Member & Committer of Apache Stratos,
>>> >>> Senior Software Engineer, WSO2 Inc.
>>> >>>
>>> >>> Blog: http://nirmalfdo.blogspot.com/
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> --
>>> >> Lahiru Sandaruwan
>>> >> Committer and PPMC member, Apache Stratos(incubating),
>>> >> Senior Software Engineer,
>>> >> WSO2 Inc., http://wso2.com
>>> >> lean.enterprise.middleware
>>> >>
>>> >> email: lahirus@wso2.com cell: (+94) 773 325 954
>>> >> blog: http://lahiruwrites.blogspot.com/
>>> >> twitter: http://twitter.com/lahirus
>>> >> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Best Regards,
>>> > Nirmal
>>> >
>>> > Nirmal Fernando.
>>> > PPMC Member & Committer of Apache Stratos,
>>> > Senior Software Engineer, WSO2 Inc.
>>> >
>>> > Blog: http://nirmalfdo.blogspot.com/
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
And I don't understand how you eliminate threshold values!


On Tue, Apr 29, 2014 at 10:40 PM, Nirmal Fernando <ni...@gmail.com>wrote:

> hmm... do we have a discussion on what we are planning to do?
>
>
> On Tue, Apr 29, 2014 at 10:36 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>> Sent from my mobile.
>>
>> On Apr 29, 2014 10:29 PM, "Nirmal Fernando" <ni...@gmail.com>
>> wrote:
>> >
>> > Asiri could build on top of my changes, I suppose?
>>
>> We can eliminate these factors and threshold limits completely then.
>>
>> >
>> >
>> > On Tue, Apr 29, 2014 at 10:15 PM, Lahiru Sandaruwan <la...@wso2.com>
>> wrote:
>> >>
>> >>
>> >>
>> >>
>> >> On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <
>> nirmal070125@gmail.com> wrote:
>> >>>
>> >>> Lahiru, this should be ok right?
>> >>
>> >>
>> >> Yes. But for 4.1.0, we will be counting the required number of
>> instances with proposed Gsoc project by Asiri.
>> >>>
>> >>>
>> >>>
>> >>> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <
>> nirmal070125@gmail.com> wrote:
>> >>>>
>> >>>> 4.1.0
>> >>>>
>> >>>>
>> >>>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <
>> lahirus@wso2.com> wrote:
>> >>>>>
>> >>>>> Hi Nirmal,
>> >>>>>
>> >>>>> Which release do you plan to add this feature?
>> >>>>>
>> >>>>> Thanks.
>> >>>>>
>> >>>>>
>> >>>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <
>> nirmal070125@gmail.com> wrote:
>> >>>>>>
>> >>>>>> Hi All,
>> >>>>>>
>> >>>>>> Current auto-scaler takes only the 'average' threshold value from
>> a user's auto-scaling policy. Then inside the scaling related drools rules
>> it calculates an upper bound and a lower bound by multiplying the average
>> threshold value by two non-configurable constants.
>> >>>>>>
>> >>>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>> rifAverageLimit * 0.8)) || (mcReset && (mcPredictedValue > mcAverageLimit *
>> 0.8)) || (laReset && (laPredictedValue > laAverageLimit * 0.8)))
>> >>>>>>         scaleDown : Boolean() from ((rifReset &&
>> (rifPredictedValue < rifAverageLimit * 0.1)) && (mcReset &&
>> (mcPredictedValue < mcAverageLimit * 0.1)) && (laReset && (laPredictedValue
>> < laAverageLimit * 0.1)))
>> >>>>>>
>> >>>>>> IMO this is a limitation and we could make these constants
>> configurable via auto-scaling policy.
>> >>>>>>
>> >>>>>> So, I propose following format to the auto-scaling policy:
>> >>>>>>
>> >>>>>> {
>> >>>>>>   "id": "autoscale-policy-1",
>> >>>>>>   "loadThresholds": {
>> >>>>>>     "requestsInFlight": {
>> >>>>>>       "upperLimit": 30,
>> >>>>>>       "lowerLimit": 5
>> >>>>>>     },
>> >>>>>>     "memoryConsumption": {
>> >>>>>>       "upperLimit": 80,
>> >>>>>>       "lowerLimit": 50
>> >>>>>>     },
>> >>>>>>     "loadAverage": {
>> >>>>>>       "upperLimit": 100,
>> >>>>>>       "lowerLimit": 20
>> >>>>>>     }
>> >>>>>>   }
>> >>>>>> }
>> >>>>>>
>> >>>>>> Then, we can modify the rule to consider user-defined threshold
>> values when taking the scaling decision.
>> >>>>>>
>> >>>>>> Let me know your thoughts.
>> >>>>>>
>> >>>>>> --
>> >>>>>> Best Regards,
>> >>>>>> Nirmal
>> >>>>>>
>> >>>>>> Nirmal Fernando.
>> >>>>>> PPMC Member & Committer of Apache Stratos,
>> >>>>>> Senior Software Engineer, WSO2 Inc.
>> >>>>>>
>> >>>>>> Blog: http://nirmalfdo.blogspot.com/
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>> --
>> >>>>> Lahiru Sandaruwan
>> >>>>> Committer and PPMC member, Apache Stratos(incubating),
>> >>>>> Senior Software Engineer,
>> >>>>> WSO2 Inc., http://wso2.com
>> >>>>> lean.enterprise.middleware
>> >>>>>
>> >>>>> email: lahirus@wso2.com cell: (+94) 773 325 954
>> >>>>> blog: http://lahiruwrites.blogspot.com/
>> >>>>> twitter: http://twitter.com/lahirus
>> >>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Best Regards,
>> >>>> Nirmal
>> >>>>
>> >>>> Nirmal Fernando.
>> >>>> PPMC Member & Committer of Apache Stratos,
>> >>>> Senior Software Engineer, WSO2 Inc.
>> >>>>
>> >>>> Blog: http://nirmalfdo.blogspot.com/
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Best Regards,
>> >>> Nirmal
>> >>>
>> >>> Nirmal Fernando.
>> >>> PPMC Member & Committer of Apache Stratos,
>> >>> Senior Software Engineer, WSO2 Inc.
>> >>>
>> >>> Blog: http://nirmalfdo.blogspot.com/
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> --
>> >> Lahiru Sandaruwan
>> >> Committer and PPMC member, Apache Stratos(incubating),
>> >> Senior Software Engineer,
>> >> WSO2 Inc., http://wso2.com
>> >> lean.enterprise.middleware
>> >>
>> >> email: lahirus@wso2.com cell: (+94) 773 325 954
>> >> blog: http://lahiruwrites.blogspot.com/
>> >> twitter: http://twitter.com/lahirus
>> >> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>> >>
>> >
>> >
>> >
>> > --
>> > Best Regards,
>> > Nirmal
>> >
>> > Nirmal Fernando.
>> > PPMC Member & Committer of Apache Stratos,
>> > Senior Software Engineer, WSO2 Inc.
>> >
>> > Blog: http://nirmalfdo.blogspot.com/
>>
>>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
hmm... do we have a discussion on what we are planning to do?


On Tue, Apr 29, 2014 at 10:36 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:

> Sent from my mobile.
>
> On Apr 29, 2014 10:29 PM, "Nirmal Fernando" <ni...@gmail.com>
> wrote:
> >
> > Asiri could build on top of my changes, I suppose?
>
> We can eliminate these factors and threshold limits completely then.
>
> >
> >
> > On Tue, Apr 29, 2014 at 10:15 PM, Lahiru Sandaruwan <la...@wso2.com>
> wrote:
> >>
> >>
> >>
> >>
> >> On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <
> nirmal070125@gmail.com> wrote:
> >>>
> >>> Lahiru, this should be ok right?
> >>
> >>
> >> Yes. But for 4.1.0, we will be counting the required number of
> instances with proposed Gsoc project by Asiri.
> >>>
> >>>
> >>>
> >>> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <
> nirmal070125@gmail.com> wrote:
> >>>>
> >>>> 4.1.0
> >>>>
> >>>>
> >>>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>
> wrote:
> >>>>>
> >>>>> Hi Nirmal,
> >>>>>
> >>>>> Which release do you plan to add this feature?
> >>>>>
> >>>>> Thanks.
> >>>>>
> >>>>>
> >>>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <
> nirmal070125@gmail.com> wrote:
> >>>>>>
> >>>>>> Hi All,
> >>>>>>
> >>>>>> Current auto-scaler takes only the 'average' threshold value from a
> user's auto-scaling policy. Then inside the scaling related drools rules it
> calculates an upper bound and a lower bound by multiplying the average
> threshold value by two non-configurable constants.
> >>>>>>
> >>>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
> rifAverageLimit * 0.8)) || (mcReset && (mcPredictedValue > mcAverageLimit *
> 0.8)) || (laReset && (laPredictedValue > laAverageLimit * 0.8)))
> >>>>>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue
> < rifAverageLimit * 0.1)) && (mcReset && (mcPredictedValue < mcAverageLimit
> * 0.1)) && (laReset && (laPredictedValue < laAverageLimit * 0.1)))
> >>>>>>
> >>>>>> IMO this is a limitation and we could make these constants
> configurable via auto-scaling policy.
> >>>>>>
> >>>>>> So, I propose following format to the auto-scaling policy:
> >>>>>>
> >>>>>> {
> >>>>>>   "id": "autoscale-policy-1",
> >>>>>>   "loadThresholds": {
> >>>>>>     "requestsInFlight": {
> >>>>>>       "upperLimit": 30,
> >>>>>>       "lowerLimit": 5
> >>>>>>     },
> >>>>>>     "memoryConsumption": {
> >>>>>>       "upperLimit": 80,
> >>>>>>       "lowerLimit": 50
> >>>>>>     },
> >>>>>>     "loadAverage": {
> >>>>>>       "upperLimit": 100,
> >>>>>>       "lowerLimit": 20
> >>>>>>     }
> >>>>>>   }
> >>>>>> }
> >>>>>>
> >>>>>> Then, we can modify the rule to consider user-defined threshold
> values when taking the scaling decision.
> >>>>>>
> >>>>>> Let me know your thoughts.
> >>>>>>
> >>>>>> --
> >>>>>> Best Regards,
> >>>>>> Nirmal
> >>>>>>
> >>>>>> Nirmal Fernando.
> >>>>>> PPMC Member & Committer of Apache Stratos,
> >>>>>> Senior Software Engineer, WSO2 Inc.
> >>>>>>
> >>>>>> Blog: http://nirmalfdo.blogspot.com/
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> --
> >>>>> Lahiru Sandaruwan
> >>>>> Committer and PPMC member, Apache Stratos(incubating),
> >>>>> Senior Software Engineer,
> >>>>> WSO2 Inc., http://wso2.com
> >>>>> lean.enterprise.middleware
> >>>>>
> >>>>> email: lahirus@wso2.com cell: (+94) 773 325 954
> >>>>> blog: http://lahiruwrites.blogspot.com/
> >>>>> twitter: http://twitter.com/lahirus
> >>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Best Regards,
> >>>> Nirmal
> >>>>
> >>>> Nirmal Fernando.
> >>>> PPMC Member & Committer of Apache Stratos,
> >>>> Senior Software Engineer, WSO2 Inc.
> >>>>
> >>>> Blog: http://nirmalfdo.blogspot.com/
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> Best Regards,
> >>> Nirmal
> >>>
> >>> Nirmal Fernando.
> >>> PPMC Member & Committer of Apache Stratos,
> >>> Senior Software Engineer, WSO2 Inc.
> >>>
> >>> Blog: http://nirmalfdo.blogspot.com/
> >>
> >>
> >>
> >>
> >> --
> >> --
> >> Lahiru Sandaruwan
> >> Committer and PPMC member, Apache Stratos(incubating),
> >> Senior Software Engineer,
> >> WSO2 Inc., http://wso2.com
> >> lean.enterprise.middleware
> >>
> >> email: lahirus@wso2.com cell: (+94) 773 325 954
> >> blog: http://lahiruwrites.blogspot.com/
> >> twitter: http://twitter.com/lahirus
> >> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
> >>
> >
> >
> >
> > --
> > Best Regards,
> > Nirmal
> >
> > Nirmal Fernando.
> > PPMC Member & Committer of Apache Stratos,
> > Senior Software Engineer, WSO2 Inc.
> >
> > Blog: http://nirmalfdo.blogspot.com/
>
>


-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Lahiru Sandaruwan <la...@wso2.com>.
Sent from my mobile.
On Apr 29, 2014 10:29 PM, "Nirmal Fernando" <ni...@gmail.com> wrote:
>
> Asiri could build on top of my changes, I suppose?

We can eliminate these factors and threshold limits completely then.
>
>
> On Tue, Apr 29, 2014 at 10:15 PM, Lahiru Sandaruwan <la...@wso2.com>
wrote:
>>
>>
>>
>>
>> On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <ni...@gmail.com>
wrote:
>>>
>>> Lahiru, this should be ok right?
>>
>>
>> Yes. But for 4.1.0, we will be counting the required number of instances
with proposed Gsoc project by Asiri.
>>>
>>>
>>>
>>> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <ni...@gmail.com>
wrote:
>>>>
>>>> 4.1.0
>>>>
>>>>
>>>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>
wrote:
>>>>>
>>>>> Hi Nirmal,
>>>>>
>>>>> Which release do you plan to add this feature?
>>>>>
>>>>> Thanks.
>>>>>
>>>>>
>>>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <
nirmal070125@gmail.com> wrote:
>>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> Current auto-scaler takes only the 'average' threshold value from a
user's auto-scaling policy. Then inside the scaling related drools rules it
calculates an upper bound and a lower bound by multiplying the average
threshold value by two non-configurable constants.
>>>>>>
>>>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
rifAverageLimit * 0.8)) || (mcReset && (mcPredictedValue > mcAverageLimit *
0.8)) || (laReset && (laPredictedValue > laAverageLimit * 0.8)))
>>>>>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue
< rifAverageLimit * 0.1)) && (mcReset && (mcPredictedValue < mcAverageLimit
* 0.1)) && (laReset && (laPredictedValue < laAverageLimit * 0.1)))
>>>>>>
>>>>>> IMO this is a limitation and we could make these constants
configurable via auto-scaling policy.
>>>>>>
>>>>>> So, I propose following format to the auto-scaling policy:
>>>>>>
>>>>>> {
>>>>>>   "id": "autoscale-policy-1",
>>>>>>   "loadThresholds": {
>>>>>>     "requestsInFlight": {
>>>>>>       "upperLimit": 30,
>>>>>>       "lowerLimit": 5
>>>>>>     },
>>>>>>     "memoryConsumption": {
>>>>>>       "upperLimit": 80,
>>>>>>       "lowerLimit": 50
>>>>>>     },
>>>>>>     "loadAverage": {
>>>>>>       "upperLimit": 100,
>>>>>>       "lowerLimit": 20
>>>>>>     }
>>>>>>   }
>>>>>> }
>>>>>>
>>>>>> Then, we can modify the rule to consider user-defined threshold
values when taking the scaling decision.
>>>>>>
>>>>>> Let me know your thoughts.
>>>>>>
>>>>>> --
>>>>>> Best Regards,
>>>>>> Nirmal
>>>>>>
>>>>>> Nirmal Fernando.
>>>>>> PPMC Member & Committer of Apache Stratos,
>>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>>
>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Lahiru Sandaruwan
>>>>> Committer and PPMC member, Apache Stratos(incubating),
>>>>> Senior Software Engineer,
>>>>> WSO2 Inc., http://wso2.com
>>>>> lean.enterprise.middleware
>>>>>
>>>>> email: lahirus@wso2.com cell: (+94) 773 325 954
>>>>> blog: http://lahiruwrites.blogspot.com/
>>>>> twitter: http://twitter.com/lahirus
>>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>
>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Committer and PPMC member, Apache Stratos(incubating),
>> Senior Software Engineer,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com cell: (+94) 773 325 954
>> blog: http://lahiruwrites.blogspot.com/
>> twitter: http://twitter.com/lahirus
>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
Asiri could build on top of my changes, I suppose?


On Tue, Apr 29, 2014 at 10:15 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:

>
>
>
> On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Lahiru, this should be ok right?
>>
>
> Yes. But for 4.1.0, we will be counting the required number of instances
> with proposed Gsoc project by Asiri.
>
>>
>>
>> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> 4.1.0
>>>
>>>
>>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>>
>>>> Hi Nirmal,
>>>>
>>>> Which release do you plan to add this feature?
>>>>
>>>> Thanks.
>>>>
>>>>
>>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <
>>>> nirmal070125@gmail.com> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> Current auto-scaler takes only the 'average' threshold value from a
>>>>> user's auto-scaling policy. Then inside the scaling related drools rules it
>>>>> calculates an upper bound and a lower bound by multiplying the average
>>>>> threshold value by two non-configurable constants.
>>>>>
>>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>>>>> rifAverageLimit * *0.8*)) || (mcReset && (mcPredictedValue >
>>>>> mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit *
>>>>> 0.8)))
>>>>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
>>>>> rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue <
>>>>> mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit *
>>>>> 0.1)))
>>>>>
>>>>> IMO this is a limitation and we could make these constants
>>>>> configurable via auto-scaling policy.
>>>>>
>>>>> So, I propose following format to the auto-scaling policy:
>>>>>
>>>>> {
>>>>>   "id": "autoscale-policy-1",
>>>>>   "loadThresholds": {
>>>>>     "requestsInFlight": {
>>>>>       "upperLimit": 30,
>>>>>       "lowerLimit": 5
>>>>>     },
>>>>>     "memoryConsumption": {
>>>>>       "upperLimit": 80,
>>>>>       "lowerLimit": 50
>>>>>     },
>>>>>     "loadAverage": {
>>>>>       "upperLimit": 100,
>>>>>       "lowerLimit": 20
>>>>>     }
>>>>>   }
>>>>> }
>>>>>
>>>>> Then, we can modify the rule to consider user-defined threshold values
>>>>> when taking the scaling decision.
>>>>>
>>>>> Let me know your thoughts.
>>>>>
>>>>> --
>>>>> Best Regards,
>>>>> Nirmal
>>>>>
>>>>> Nirmal Fernando.
>>>>> PPMC Member & Committer of Apache Stratos,
>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>
>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Lahiru Sandaruwan
>>>> Committer and PPMC member, Apache Stratos(incubating),
>>>> Senior Software Engineer,
>>>> WSO2 Inc., http://wso2.com
>>>> lean.enterprise.middleware
>>>>
>>>> email: lahirus@wso2.com cell: (+94) 773 325 954
>>>> blog: http://lahiruwrites.blogspot.com/
>>>> twitter: http://twitter.com/lahirus
>>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> --
> Lahiru Sandaruwan
> Committer and PPMC member, Apache Stratos(incubating),
> Senior Software Engineer,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com cell: (+94) 773 325 954
> blog: http://lahiruwrites.blogspot.com/
> twitter: http://twitter.com/lahirus
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>


-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Lahiru Sandaruwan <la...@wso2.com>.
On Tue, Apr 29, 2014 at 9:52 PM, Nirmal Fernando <ni...@gmail.com>wrote:

> Lahiru, this should be ok right?
>

Yes. But for 4.1.0, we will be counting the required number of instances
with proposed Gsoc project by Asiri.

>
>
> On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> 4.1.0
>>
>>
>> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>>
>>> Hi Nirmal,
>>>
>>> Which release do you plan to add this feature?
>>>
>>> Thanks.
>>>
>>>
>>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <nirmal070125@gmail.com
>>> > wrote:
>>>
>>>> Hi All,
>>>>
>>>> Current auto-scaler takes only the 'average' threshold value from a
>>>> user's auto-scaling policy. Then inside the scaling related drools rules it
>>>> calculates an upper bound and a lower bound by multiplying the average
>>>> threshold value by two non-configurable constants.
>>>>
>>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>>>> rifAverageLimit * *0.8*)) || (mcReset && (mcPredictedValue >
>>>> mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit *
>>>> 0.8)))
>>>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
>>>> rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue <
>>>> mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit *
>>>> 0.1)))
>>>>
>>>> IMO this is a limitation and we could make these constants configurable
>>>> via auto-scaling policy.
>>>>
>>>> So, I propose following format to the auto-scaling policy:
>>>>
>>>> {
>>>>   "id": "autoscale-policy-1",
>>>>   "loadThresholds": {
>>>>     "requestsInFlight": {
>>>>       "upperLimit": 30,
>>>>       "lowerLimit": 5
>>>>     },
>>>>     "memoryConsumption": {
>>>>       "upperLimit": 80,
>>>>       "lowerLimit": 50
>>>>     },
>>>>     "loadAverage": {
>>>>       "upperLimit": 100,
>>>>       "lowerLimit": 20
>>>>     }
>>>>   }
>>>> }
>>>>
>>>> Then, we can modify the rule to consider user-defined threshold values
>>>> when taking the scaling decision.
>>>>
>>>> Let me know your thoughts.
>>>>
>>>> --
>>>> Best Regards,
>>>> Nirmal
>>>>
>>>> Nirmal Fernando.
>>>> PPMC Member & Committer of Apache Stratos,
>>>> Senior Software Engineer, WSO2 Inc.
>>>>
>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Committer and PPMC member, Apache Stratos(incubating),
>>> Senior Software Engineer,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: lahirus@wso2.com cell: (+94) 773 325 954
>>> blog: http://lahiruwrites.blogspot.com/
>>> twitter: http://twitter.com/lahirus
>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
--
Lahiru Sandaruwan
Committer and PPMC member, Apache Stratos(incubating),
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com cell: (+94) 773 325 954
blog: http://lahiruwrites.blogspot.com/
twitter: http://twitter.com/lahirus
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
Lahiru, this should be ok right?


On Tue, Apr 29, 2014 at 7:21 PM, Nirmal Fernando <ni...@gmail.com>wrote:

> 4.1.0
>
>
> On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:
>
>> Hi Nirmal,
>>
>> Which release do you plan to add this feature?
>>
>> Thanks.
>>
>>
>> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>>
>>> Hi All,
>>>
>>> Current auto-scaler takes only the 'average' threshold value from a
>>> user's auto-scaling policy. Then inside the scaling related drools rules it
>>> calculates an upper bound and a lower bound by multiplying the average
>>> threshold value by two non-configurable constants.
>>>
>>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>>> rifAverageLimit * *0.8*)) || (mcReset && (mcPredictedValue >
>>> mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit *
>>> 0.8)))
>>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
>>> rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue <
>>> mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit *
>>> 0.1)))
>>>
>>> IMO this is a limitation and we could make these constants configurable
>>> via auto-scaling policy.
>>>
>>> So, I propose following format to the auto-scaling policy:
>>>
>>> {
>>>   "id": "autoscale-policy-1",
>>>   "loadThresholds": {
>>>     "requestsInFlight": {
>>>       "upperLimit": 30,
>>>       "lowerLimit": 5
>>>     },
>>>     "memoryConsumption": {
>>>       "upperLimit": 80,
>>>       "lowerLimit": 50
>>>     },
>>>     "loadAverage": {
>>>       "upperLimit": 100,
>>>       "lowerLimit": 20
>>>     }
>>>   }
>>> }
>>>
>>> Then, we can modify the rule to consider user-defined threshold values
>>> when taking the scaling decision.
>>>
>>> Let me know your thoughts.
>>>
>>> --
>>> Best Regards,
>>> Nirmal
>>>
>>> Nirmal Fernando.
>>> PPMC Member & Committer of Apache Stratos,
>>> Senior Software Engineer, WSO2 Inc.
>>>
>>> Blog: http://nirmalfdo.blogspot.com/
>>>
>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Committer and PPMC member, Apache Stratos(incubating),
>> Senior Software Engineer,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: lahirus@wso2.com cell: (+94) 773 325 954
>> blog: http://lahiruwrites.blogspot.com/
>> twitter: http://twitter.com/lahirus
>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>
>>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Nirmal Fernando <ni...@gmail.com>.
4.1.0


On Tue, Apr 29, 2014 at 12:18 PM, Lahiru Sandaruwan <la...@wso2.com>wrote:

> Hi Nirmal,
>
> Which release do you plan to add this feature?
>
> Thanks.
>
>
> On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <ni...@gmail.com>wrote:
>
>> Hi All,
>>
>> Current auto-scaler takes only the 'average' threshold value from a
>> user's auto-scaling policy. Then inside the scaling related drools rules it
>> calculates an upper bound and a lower bound by multiplying the average
>> threshold value by two non-configurable constants.
>>
>> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
>> rifAverageLimit * *0.8*)) || (mcReset && (mcPredictedValue >
>> mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit *
>> 0.8)))
>>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
>> rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue <
>> mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit *
>> 0.1)))
>>
>> IMO this is a limitation and we could make these constants configurable
>> via auto-scaling policy.
>>
>> So, I propose following format to the auto-scaling policy:
>>
>> {
>>   "id": "autoscale-policy-1",
>>   "loadThresholds": {
>>     "requestsInFlight": {
>>       "upperLimit": 30,
>>       "lowerLimit": 5
>>     },
>>     "memoryConsumption": {
>>       "upperLimit": 80,
>>       "lowerLimit": 50
>>     },
>>     "loadAverage": {
>>       "upperLimit": 100,
>>       "lowerLimit": 20
>>     }
>>   }
>> }
>>
>> Then, we can modify the rule to consider user-defined threshold values
>> when taking the scaling decision.
>>
>> Let me know your thoughts.
>>
>> --
>> Best Regards,
>> Nirmal
>>
>> Nirmal Fernando.
>> PPMC Member & Committer of Apache Stratos,
>> Senior Software Engineer, WSO2 Inc.
>>
>> Blog: http://nirmalfdo.blogspot.com/
>>
>
>
>
> --
> --
> Lahiru Sandaruwan
> Committer and PPMC member, Apache Stratos(incubating),
> Senior Software Engineer,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahirus@wso2.com cell: (+94) 773 325 954
> blog: http://lahiruwrites.blogspot.com/
> twitter: http://twitter.com/lahirus
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>


-- 
Best Regards,
Nirmal

Nirmal Fernando.
PPMC Member & Committer of Apache Stratos,
Senior Software Engineer, WSO2 Inc.

Blog: http://nirmalfdo.blogspot.com/

Re: [Autoscaling] Allowing users to configure an upper and a lower limit of threshold values

Posted by Lahiru Sandaruwan <la...@wso2.com>.
Hi Nirmal,

Which release do you plan to add this feature?

Thanks.


On Tue, Apr 29, 2014 at 6:08 AM, Nirmal Fernando <ni...@gmail.com>wrote:

> Hi All,
>
> Current auto-scaler takes only the 'average' threshold value from a user's
> auto-scaling policy. Then inside the scaling related drools rules it
> calculates an upper bound and a lower bound by multiplying the average
> threshold value by two non-configurable constants.
>
> scaleUp : Boolean() from ((rifReset && (rifPredictedValue >
> rifAverageLimit * *0.8*)) || (mcReset && (mcPredictedValue >
> mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit *
> 0.8)))
>         scaleDown : Boolean() from ((rifReset && (rifPredictedValue <
> rifAverageLimit ** 0.1*)) && (mcReset && (mcPredictedValue <
> mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit *
> 0.1)))
>
> IMO this is a limitation and we could make these constants configurable
> via auto-scaling policy.
>
> So, I propose following format to the auto-scaling policy:
>
> {
>   "id": "autoscale-policy-1",
>   "loadThresholds": {
>     "requestsInFlight": {
>       "upperLimit": 30,
>       "lowerLimit": 5
>     },
>     "memoryConsumption": {
>       "upperLimit": 80,
>       "lowerLimit": 50
>     },
>     "loadAverage": {
>       "upperLimit": 100,
>       "lowerLimit": 20
>     }
>   }
> }
>
> Then, we can modify the rule to consider user-defined threshold values
> when taking the scaling decision.
>
> Let me know your thoughts.
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>



-- 
--
Lahiru Sandaruwan
Committer and PPMC member, Apache Stratos(incubating),
Senior Software Engineer,
WSO2 Inc., http://wso2.com
lean.enterprise.middleware

email: lahirus@wso2.com cell: (+94) 773 325 954
blog: http://lahiruwrites.blogspot.com/
twitter: http://twitter.com/lahirus
linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146