Hi Reka,

+1 for introducing a locking mechanism.
Can we first have a look at the threading model we have here, which threads
are accessing the cluster monitor and who execute read/write operations?

Thanks

On Wed, Dec 3, 2014 at 9:57 AM, Isuru Haththotuwa <[email protected]> wrote:

> +1. AFAIU, we can have the same read/write lock that we have in Topology
> and Application models, where multiple reads are possible at one time, but
> only can be updated by one thread.
>
> On Tue, Dec 2, 2014 at 11:29 PM, Lahiru Sandaruwan <[email protected]>
> wrote:
>
>> +1. With a complications of grouping structure, this would be a good
>> improvement.
>>
>> For most of the occasions, read lock would be enough for drools file
>> usage...
>>
>> Thanks.
>>
>>
>> On Tue, Dec 2, 2014 at 11:10 PM, Reka Thirunavukkarasu <[email protected]>
>> wrote:
>>
>>> Hi All,
>>>
>>> Since we are frequently updating the clusterMonitors with dynamic
>>> information while drools are getting executed or while a clusterInstance is
>>> getting added, it would be better to have locking support and
>>> proper synchronization before updating these dynamic information.  There
>>> are few things as below that we may need to consider before designing
>>> locking for ClusterMonitor.
>>>
>>> - Drools usually take time to execute. At that time, if we take the
>>> lock, then other dynamic updates need to wait until drools are getting
>>> executed. It will be blocking for stats updates and etc.
>>>
>>> - Drools can't take the partially updated data structure to evaluate. It
>>> should take the latest fully updated data structure.
>>>
>>> - We update the CEP stats dynamically to ClusterMonitor without taking
>>> any locks
>>>
>>> - CreatedInstance in the ClusterMonitor can be called by several other
>>> threads. It requires synchronisation.  GroupMonitor will also ask
>>> ClusterMonitor to create instance based on the scaling decision.
>>>
>>> If you have any better suggestion to implement locking support in
>>> ClusterMonitor, please share your suggestions. In the mean while, i will
>>> also go through further and try to find a way to handle it.
>>>
>>>
>>> Thanks,
>>> Reka
>>>
>>> --
>>> Reka Thirunavukkarasu
>>> Senior Software Engineer,
>>> WSO2, Inc.:http://wso2.com,
>>> Mobile: +94776442007
>>>
>>>
>>>
>>
>>
>> --
>> --
>> Lahiru Sandaruwan
>> Committer and PMC member, Apache Stratos,
>> Senior Software Engineer,
>> WSO2 Inc., http://wso2.com
>> lean.enterprise.middleware
>>
>> email: [email protected] blog: http://lahiruwrites.blogspot.com/
>> linked-in:
>> http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>
>> --
>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>
>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>
>> Thanks and Regards,
>>
>> Isuru H.
>> <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>
>> +94 716 358 048 <http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146>*
>> <http://wso2.com/>*
>>
>>
>> * <http://wso2.com/>*
>>
>>
>>


-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to