Hi Maryam,

Are we keeping the passive node in sync with the active node or are we
reloading context and message data when a passive node becomes active?

On Fri, Jan 12, 2018 at 6:46 PM, Maryam Ziyad <[email protected]> wrote:

> Hi All,
>
> As mentioned, an extensible point "org.wso2.broker.coordination.HaStrategy"
> has been introduced, which can be implemented to provide variations upon
> which HA support will be based.
>
> Any new/custom implementation would have to notify the listeners listening
> on node state changes (when a node state changes from active to passive or
> passive to active).
>
> Currently the modules listening on state changes are as follows:
>
>    - broker-core
>    - broker-transport
>    - broker-rest-runner
>
> All nodes will start up in "passive" mode, and only change state to
> "active" on notification by the HA strategy. This requires that the
> listeners are registered prior to starting the HA strategy (identification
> of the active node).
>
>
> *Default RDBMS Coordinator Election based HA Strategy *
>
> With the default HA strategy (RdbmsHaStrategy - implemented based on the
> RDBMS based coordinator election approach [1]), the possible coordination
> node states are mapped to active/passive as follows:
>
>    - COORDINATOR - Active
>    - CANDIDATE - Passive
>    - ELECTION - Passive
>
> Thus notification of the HA listeners happens when:
>
>    - election is triggered and the node was previously the coordinator
>    node (active → passive)
>    - election resulted in the node becoming the coordinator node (passive
>    → active)
>
> [1] https://github.com/wso2/message-broker/pull/74
>
> Feedback/suggestions would be highly appreciated.
>
> Thank you,
> Maryam
>
> On Fri, Jan 12, 2018 at 6:41 PM, Maryam Ziyad <[email protected]> wrote:
>
>> Hi Asanka,
>>
>> Renamed "haConfig" to "failover" based on the offline discussion.
>>
>> Thank you,
>> Maryam
>>
>> On Tue, Dec 19, 2017 at 7:05 PM, Asanka Abeyweera <[email protected]>
>> wrote:
>>
>>> Hi Maryam,
>>>
>>> Shall we rename the "haConfig" to "ha-clustering"? I'm not sure if we
>>> should use camel case in the yaml config.
>>>
>>> On Tue, Dec 19, 2017 at 4:42 PM, Maryam Ziyad <[email protected]> wrote:
>>>
>>>> Hi All,
>>>>
>>>> We are currently working on introducing $subject [1]. Please find below
>>>> a high level description of the approach.
>>>>
>>>> An extension point (HaStrategy) will be introduced, allowing
>>>> straightforward introduction of different implementations of identification
>>>> of the active node, where the only requirements would be that these
>>>> approaches extend the common class and invoke particular methods when the
>>>> node state changes.
>>>>
>>>> The broker-core and broker-transport (broker-amqp) modules would
>>>> introduce listeners to receive notifications of node states changes
>>>> (active/passive), and change behaviour accordingly.
>>>>
>>>>
>>>> ​
>>>>
>>>> *Configuration*
>>>>
>>>> The HA related configuration would be specified in the broker.yaml file
>>>> including whether HA is enabled and the HA strategy to use.
>>>>
>>>> haConfig:
>>>>  enabled: true
>>>>  strategy: org.wso2.broker.coordination.rdbms.RdbmsHaStrategy
>>>>
>>>>
>>>> The basic/initial HA strategy implementation will be the
>>>> RdbmsHaStrategy based on the RDBMS based coordinator election approach
>>>> previously introduced for MB 3.2.0. [2, 3]. ​If HA enabled is set to true
>>>> but no strategy is specified, the RdbmsHaStrategy will be used.
>>>>
>>>>
>>>> *RDBMS Coordinator Election based HA Strategy (RdbmsHaStrategy)*
>>>>
>>>> The RDBMS based coordinator election algorithm would be extended to
>>>> provide HA support, by specifying the node elected as coordinator to always
>>>> be the active node, while the other node(s) will be considered passive. The
>>>> RDBMS coordinator election based approach, which would also be the default
>>>> HA strategy, would require the nodes in the HA group to share the same
>>>> database. All MB nodes pointing to this shared database will be considered
>>>> as MBs belonging to the same group, and at any given point only one of the
>>>> nodes will be considered active.
>>>>
>>>> Feedback on the approach would be highly appreciated.
>>>>
>>>> [1] https://github.com/wso2/message-
>>>> <https://github.com/wso2/message-broker/issues/87>*when*
>>>> broker/issues/87 <https://github.com/wso2/message-broker/issues/87>
>>>> [2] Mail: "[Architecture] RDBMS based coordinator election algorithm
>>>> for MB"
>>>> [3] https://github.com/wso2/andes/pullwhen/668
>>>> <https://github.com/wso2/andes/pull/668>
>>>>
>>>> Thank you,
>>>> Maryam
>>>> ​
>>>> --
>>>> *Maryam Ziyad Mohamed*
>>>> Software Engineer | WSO2
>>>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Asanka Abeyweera
>>> Associate Technical Lead
>>> WSO2 Inc.
>>>
>>> Phone: +94 712228648 <+94%2071%20222%208648>
>>> Blog: a5anka.github.io
>>>
>>> <https://wso2.com/signature>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Maryam Ziyad Mohamed*
>> Software Engineer | WSO2
>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>
>
>
>
> --
> *Maryam Ziyad Mohamed*
> Software Engineer | WSO2
> [image: http://wso2.com/signature] <http://wso2.com/signature>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Asanka Abeyweera
Associate Technical Lead
WSO2 Inc.

Phone: +94 712228648
Blog: a5anka.github.io

<https://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to