Cool. When are you guys planning to release the generalized component? On Fri, Dec 2, 2016 at 10:57 AM, Anjana Fernando <anj...@wso2.com> wrote:
> Hi guys, > > So the generalized coordination component was done by SameeraR, and the > discussions for that can be seen at [1] and [2]. We've identified some > improvements that also can be done to it, to make it more stable. > > [1] "Updated Invitation: Code Review for the implementation of RDBMS based > coordin... @ Thu Dec 1, 2016 2pm - 3pm (IST) (WSO2 Engineering Group)" > [2] "Implementing a RDBMS based leader election mechanism" > > Cheers, > Anjana. > > On Wed, Nov 30, 2016 at 4:21 PM, Asanka Abeyweera <asank...@wso2.com> > wrote: > >> Hi all, >> >> Following is the PR[1] related the implementation. This is currently >> merged to the master branch and will be a feature of the next MB release >> (3.2.0). >> >> [1] https://github.com/wso2/andes/pull/668 >> >> On Mon, Nov 7, 2016 at 12:45 PM, Ramith Jayasinghe <ram...@wso2.com> >> wrote: >> >>> +1 >>> >>> On Mon, Nov 7, 2016 at 12:40 PM, Anjana Fernando <anj...@wso2.com> >>> wrote: >>> >>>> Hi Ramith, >>>> >>>> Sure. Actually, I was talking with SameeraR to take over this and >>>> create a common component which has the required coordination >>>> functionality. The idea is to create a component, where the providers can >>>> be plugged in, such as the RDBMS based one, ZK, or any other container >>>> specific provider that maybe out there. >>>> >>>> Cheers, >>>> Anjana. >>>> >>>> On Mon, Nov 7, 2016 at 12:38 PM, Ramith Jayasinghe <ram...@wso2.com> >>>> wrote: >>>> >>>>> this might require some work.. shall we have a chat? >>>>> >>>>> On Thu, Nov 3, 2016 at 3:52 PM, Anjana Fernando <anj...@wso2.com> >>>>> wrote: >>>>> >>>>>> Ping! .. >>>>>> >>>>>> On Wed, Nov 2, 2016 at 5:03 PM, Anjana Fernando <anj...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> On Wed, Nov 2, 2016 at 3:14 PM, Asanka Abeyweera <asank...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Anjana, >>>>>>>> >>>>>>>> Currently, the implementation is part of the MB code (not a common >>>>>>>> component). >>>>>>>> >>>>>>> >>>>>>> Okay, can we please get it as a common component. >>>>>>> >>>>>>> Cheers, >>>>>>> Anjana. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> On Wed, Nov 2, 2016 at 3:00 PM, Anjana Fernando <anj...@wso2.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Asanka/Ramith, >>>>>>>>> >>>>>>>>> So for C5 based Streaming Analytics solution, we need coordination >>>>>>>>> functionality there as well. Is the functionality mentioned here >>>>>>>>> created as >>>>>>>>> a common component or baked in to the MB code? .. if so, can we >>>>>>>>> please get >>>>>>>>> it implemented it as a generic component, so other products can also >>>>>>>>> use >>>>>>>>> it. >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Anjana. >>>>>>>>> >>>>>>>>> On Tue, Aug 9, 2016 at 3:10 PM, Anjana Fernando <anj...@wso2.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Great! .. >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> Anjana. >>>>>>>>>> >>>>>>>>>> On Tue, Aug 9, 2016 at 1:49 PM, Asanka Abeyweera < >>>>>>>>>> asank...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Anjana, >>>>>>>>>>> >>>>>>>>>>> Thank you for the suggestion. We have already done a similar >>>>>>>>>>> thing. We have added a backoff time after creating the leader entry >>>>>>>>>>> and >>>>>>>>>>> check if the leader entry is the entry created by self before >>>>>>>>>>> informing the >>>>>>>>>>> leader change. >>>>>>>>>>> >>>>>>>>>>> On Tue, Aug 9, 2016 at 12:27 PM, Anjana Fernando < >>>>>>>>>>> anj...@wso2.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> I see, thanks for the clarification, looks good! .. I think >>>>>>>>>>>> small thing to consider is, to avoid the situation where, the >>>>>>>>>>>> current >>>>>>>>>>>> leader goes away, and two other competes to become the leader, and >>>>>>>>>>>> the >>>>>>>>>>>> first one and the second one checks (reads) the table to check the >>>>>>>>>>>> last >>>>>>>>>>>> heartbeat and figures out that the leader is outdated at the same >>>>>>>>>>>> time, and >>>>>>>>>>>> then first one delete the entry and puts his one, and after that, >>>>>>>>>>>> second >>>>>>>>>>>> one will also delete the existing one and put his one, so both >>>>>>>>>>>> will think >>>>>>>>>>>> they became the leader, due to the condition that both succeeded >>>>>>>>>>>> in adding >>>>>>>>>>>> the entry without an error. So this can probably be fixed by >>>>>>>>>>>> checking back >>>>>>>>>>>> after a bit of time if the current node is actually me, which >>>>>>>>>>>> probabilistically will work well, if that time period is >>>>>>>>>>>> sufficient big >>>>>>>>>>>> enough than a typical database transaction required by a node to >>>>>>>>>>>> do the >>>>>>>>>>>> earlier operations. Or else, we should make sure the database >>>>>>>>>>>> transaction >>>>>>>>>>>> level used in this scenario is at least REPEATABLE_READ, where >>>>>>>>>>>> when we read >>>>>>>>>>>> the record, it will lock it throughout the transaction. So some >>>>>>>>>>>> DBMSs does >>>>>>>>>>>> not support REPEATABLE_READ, where in that case, we should be able >>>>>>>>>>>> to use >>>>>>>>>>>> SERIALIZABLE, which most of them support. >>>>>>>>>>>> >>>>>>>>>>>> Cheers, >>>>>>>>>>>> Anjana. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Aug 9, 2016 at 11:11 AM, Maninda Edirisooriya < >>>>>>>>>>>> mani...@wso2.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi Anjana, >>>>>>>>>>>>> >>>>>>>>>>>>> After having an offline chat with Asanka what I understood was >>>>>>>>>>>>> that the leader election was done completely via the database but >>>>>>>>>>>>> with no >>>>>>>>>>>>> network communication. The leader is mentioned in the database >>>>>>>>>>>>> first. Then >>>>>>>>>>>>> the leader updates the node data periodically in the database. If >>>>>>>>>>>>> some node >>>>>>>>>>>>> realizes the data in the DB are outdated that means the leader was >>>>>>>>>>>>> disconnected. Then that node will look at the created timestamp >>>>>>>>>>>>> of the >>>>>>>>>>>>> leader entry. If that is not very recent that means there was no >>>>>>>>>>>>> new leader >>>>>>>>>>>>> elected recently. So he will try to update the leader entry with >>>>>>>>>>>>> his ID. As >>>>>>>>>>>>> I understand there the leader entry is using the leader ID and the >>>>>>>>>>>>> timestamp as the primary key. Even several nodes try to do it >>>>>>>>>>>>> simultaneously only one node will successfully be able to update >>>>>>>>>>>>> the entry >>>>>>>>>>>>> with the help of atomicity provided by the DB. Others members >>>>>>>>>>>>> will note the >>>>>>>>>>>>> timestamp of the leader was updated so will accept the first one >>>>>>>>>>>>> who >>>>>>>>>>>>> updates as the leader. Even after the leader is elected, the >>>>>>>>>>>>> leader will >>>>>>>>>>>>> only notify node data via updating DB instead of network calls. >>>>>>>>>>>>> Other nodes >>>>>>>>>>>>> will just observe it and check the latest timestmps of the entry. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *Maninda Edirisooriya* >>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>> >>>>>>>>>>>>> *WSO2, Inc.*lean.enterprise.middleware. >>>>>>>>>>>>> >>>>>>>>>>>>> *Blog* : http://maninda.blogspot.com/ >>>>>>>>>>>>> *E-mail* : mani...@wso2.com >>>>>>>>>>>>> *Skype* : @manindae >>>>>>>>>>>>> *Twitter* : @maninda >>>>>>>>>>>>> >>>>>>>>>>>>> On Tue, Aug 9, 2016 at 10:13 AM, Anjana Fernando < >>>>>>>>>>>>> anj...@wso2.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I just noticed this thread. I've some concerns on this >>>>>>>>>>>>>> implementations. First of all, I don't think the statement >>>>>>>>>>>>>> mentioned here >>>>>>>>>>>>>> saying an external service such as ZooKeeper doesn't work, is >>>>>>>>>>>>>> correct. >>>>>>>>>>>>>> Because, if you have a ZK cluster (it is suppose to be used as a >>>>>>>>>>>>>> cluster), >>>>>>>>>>>>>> you will not have any issues. All the nodes have a list of >>>>>>>>>>>>>> endpoints to all >>>>>>>>>>>>>> the ZK nodes and they connect to those, and ZK has a quorum >>>>>>>>>>>>>> based mechanism >>>>>>>>>>>>>> in keeping its state. So this makes sure, all the users have a >>>>>>>>>>>>>> single >>>>>>>>>>>>>> version of the ZK data. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Also, I guess the fundamental problem here in the split brain >>>>>>>>>>>>>> situation is, we need one external entity taking the decision >>>>>>>>>>>>>> (e.g. ZK >>>>>>>>>>>>>> cluster), because it should have oversight to the whole >>>>>>>>>>>>>> environment. I >>>>>>>>>>>>>> don't see how this RDBMS mechanism would solve that. Because, >>>>>>>>>>>>>> what it gives >>>>>>>>>>>>>> is a central location of state persistence. But the decisions of >>>>>>>>>>>>>> making who >>>>>>>>>>>>>> is the leader is taken by the users, which can be problematic. >>>>>>>>>>>>>> Where when >>>>>>>>>>>>>> we have a network partition scenario in that occasion, two >>>>>>>>>>>>>> groups of users >>>>>>>>>>>>>> will be overriding each other in the centralized RDBMS data >>>>>>>>>>>>>> repeatedly and >>>>>>>>>>>>>> it will go on forever, where in the ZK situation, there will be >>>>>>>>>>>>>> only one >>>>>>>>>>>>>> leader, and the guys in the other partition simply won't be able >>>>>>>>>>>>>> to reach >>>>>>>>>>>>>> the leader, until its network issues are sorted. >>>>>>>>>>>>>> >>>>>>>>>>>>>> So I also think, as Imesh mentioned, creating a coordination >>>>>>>>>>>>>> algorithm from scratch may not be a wise decision, and we should >>>>>>>>>>>>>> use proven >>>>>>>>>>>>>> technology/libraries to do that. And on a side note, the main >>>>>>>>>>>>>> reason for >>>>>>>>>>>>>> not using ZK for this earlier was because of the hassle of >>>>>>>>>>>>>> bringing up >>>>>>>>>>>>>> another set of servers when our products are clustered, and we >>>>>>>>>>>>>> knew that >>>>>>>>>>>>>> the split brain scenario will occur in HZ, but maybe now we >>>>>>>>>>>>>> should give an >>>>>>>>>>>>>> extension point probably to plug into an external service if for >>>>>>>>>>>>>> some >>>>>>>>>>>>>> applications the split brain scenario is a show stopper. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Cheers, >>>>>>>>>>>>>> Anjana. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Aug 9, 2016 at 4:45 AM, Kasun Indrasiri < >>>>>>>>>>>>>> ka...@wso2.com> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi Ramith/Asanka, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ESB/DSS natask impl is also based on HZ. I guess if this >>>>>>>>>>>>>>> model works for the MB, we should make it generic for all such >>>>>>>>>>>>>>> coordination >>>>>>>>>>>>>>> requirements. (Thinking about using this in ESB 5.1)? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 3:58 AM, Sajini De Silva < >>>>>>>>>>>>>>> saj...@wso2.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Maninda, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Locking the database will be supported by some databases >>>>>>>>>>>>>>>> but there will be huge performance impact. So we cannot use >>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> approach. If this approach cannot be adapted the only thing >>>>>>>>>>>>>>>> we can do is >>>>>>>>>>>>>>>> queue wise load balancing through slot coordinator. But in >>>>>>>>>>>>>>>> this case we >>>>>>>>>>>>>>>> cannot guarantee that load balance will be equally distributed >>>>>>>>>>>>>>>> since some >>>>>>>>>>>>>>>> queues can be loaded while some will be idle. Also we cannot >>>>>>>>>>>>>>>> have multiple >>>>>>>>>>>>>>>> slot coordinators having same queue as it may cause several >>>>>>>>>>>>>>>> complications >>>>>>>>>>>>>>>> such as, same slot is assigned to two nodes by different >>>>>>>>>>>>>>>> subscribers, >>>>>>>>>>>>>>>> message duplication etc. Actually this slot architecture was >>>>>>>>>>>>>>>> discussed in a >>>>>>>>>>>>>>>> separate mail thread before it is implemented. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 3:12 PM, Maninda Edirisooriya < >>>>>>>>>>>>>>>> mani...@wso2.com> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Sajini, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Yes that is what I meant. As the number of slots are >>>>>>>>>>>>>>>>> proportional to the number of messages passing through the >>>>>>>>>>>>>>>>> cluster, slot >>>>>>>>>>>>>>>>> delivery should not be handled by the coordinator when there >>>>>>>>>>>>>>>>> is only one >>>>>>>>>>>>>>>>> coordinator in the cluster which is a bottleneck for scaling >>>>>>>>>>>>>>>>> messages >>>>>>>>>>>>>>>>> passing through the cluster. If there is only a single >>>>>>>>>>>>>>>>> coordinator, it >>>>>>>>>>>>>>>>> should handle operations that are not proportional to >>>>>>>>>>>>>>>>> messages throughput >>>>>>>>>>>>>>>>> of the cluster. Then only the tasks like subscriber adding / >>>>>>>>>>>>>>>>> removing >>>>>>>>>>>>>>>>> should be handled by the coordinator. As this is not the >>>>>>>>>>>>>>>>> current >>>>>>>>>>>>>>>>> implementation, we can consider multiple coordinator >>>>>>>>>>>>>>>>> approach. Then the >>>>>>>>>>>>>>>>> number of coordinators should be scalable with the message >>>>>>>>>>>>>>>>> throughout. I am >>>>>>>>>>>>>>>>> not sure whether locking the database per transaction would >>>>>>>>>>>>>>>>> achieve this >>>>>>>>>>>>>>>>> coordinator scalability in the multiple coordinator >>>>>>>>>>>>>>>>> implementation. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> *Maninda Edirisooriya* >>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> *WSO2, Inc.*lean.enterprise.middleware. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> *Blog* : http://maninda.blogspot.com/ >>>>>>>>>>>>>>>>> *E-mail* : mani...@wso2.com >>>>>>>>>>>>>>>>> *Skype* : @manindae >>>>>>>>>>>>>>>>> *Twitter* : @maninda >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 2:42 PM, Sajini De Silva < >>>>>>>>>>>>>>>>> saj...@wso2.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi Maninda, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 2:28 PM, Maninda Edirisooriya < >>>>>>>>>>>>>>>>>> mani...@wso2.com> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> @Sajini, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> But the number of slots are proportional to the number >>>>>>>>>>>>>>>>>>> of messages pass through the MB which needs to be handled >>>>>>>>>>>>>>>>>>> by the >>>>>>>>>>>>>>>>>>> coordinator. That is what I meant by "information related >>>>>>>>>>>>>>>>>>> to meta data of >>>>>>>>>>>>>>>>>>> messages pass through a single coordinator". Ideally after >>>>>>>>>>>>>>>>>>> the senders and >>>>>>>>>>>>>>>>>>> receivers are subscribed to the cluster, coordinator should >>>>>>>>>>>>>>>>>>> have nothing to >>>>>>>>>>>>>>>>>>> do until they are removed or changed. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Even though it is possible to have multiple coordinators >>>>>>>>>>>>>>>>>> after having en effort (Lock the database for a whole >>>>>>>>>>>>>>>>>> transaction or the >>>>>>>>>>>>>>>>>> work load distribution as described by Ramith) , coordinator >>>>>>>>>>>>>>>>>> may have >>>>>>>>>>>>>>>>>> different work to do other than subscriber adding and >>>>>>>>>>>>>>>>>> removing. As I said >>>>>>>>>>>>>>>>>> earlier our MB message distribution system is based on slot >>>>>>>>>>>>>>>>>> architecture >>>>>>>>>>>>>>>>>> and slots will managed by the coordinator. You can read [1] >>>>>>>>>>>>>>>>>> to understand >>>>>>>>>>>>>>>>>> more about slot architecture in MB. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> [1] http://sajinid.blogspot.co >>>>>>>>>>>>>>>>>> m/2015/03/wso2-message-broker-300-slot-based.html >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> @Ramith, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> +1 for multiple coordinators by partitioning the cluster >>>>>>>>>>>>>>>>>>> which maintains the simplicity and correctness of the >>>>>>>>>>>>>>>>>>> algorithm than >>>>>>>>>>>>>>>>>>> compromising simplicity with a less important factor like >>>>>>>>>>>>>>>>>>> "delivering a >>>>>>>>>>>>>>>>>>> good mix of messages". >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> *Maninda Edirisooriya* >>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> *WSO2, Inc.*lean.enterprise.middleware. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> *Blog* : http://maninda.blogspot.com/ >>>>>>>>>>>>>>>>>>> *E-mail* : mani...@wso2.com >>>>>>>>>>>>>>>>>>> *Skype* : @manindae >>>>>>>>>>>>>>>>>>> *Twitter* : @maninda >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 2:05 PM, Ramith Jayasinghe < >>>>>>>>>>>>>>>>>>> ram...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> @Imesh, >>>>>>>>>>>>>>>>>>>> We can prove that doing leader election using >>>>>>>>>>>>>>>>>>>> a lib (where we maintain cluster state in another place, >>>>>>>>>>>>>>>>>>>> a.k.a DB) will not >>>>>>>>>>>>>>>>>>>> solve our original problem (this also relates to our past >>>>>>>>>>>>>>>>>>>> experience with >>>>>>>>>>>>>>>>>>>> both the zookeeper and hazelcast). >>>>>>>>>>>>>>>>>>>> We can make this implementation a common component if >>>>>>>>>>>>>>>>>>>> other products have a use of it. BPS might be able to use >>>>>>>>>>>>>>>>>>>> it since their >>>>>>>>>>>>>>>>>>>> data is also in the database. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> @Malaka: >>>>>>>>>>>>>>>>>>>> VFS scenario can't be solved by relying on this >>>>>>>>>>>>>>>>>>>> implementation. why? you can have the access to DB but not >>>>>>>>>>>>>>>>>>>> VFS >>>>>>>>>>>>>>>>>>>> resources/file (and vice versa). this is the same point we >>>>>>>>>>>>>>>>>>>> explained before. >>>>>>>>>>>>>>>>>>>> in Ntask implementation, if tasks are stored in the >>>>>>>>>>>>>>>>>>>> database then using this implementation makes sense. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> @Akila, >>>>>>>>>>>>>>>>>>>> implementing (distributed) a queue algorithm is >>>>>>>>>>>>>>>>>>>> non-trivial. Having one coordinator (single source of >>>>>>>>>>>>>>>>>>>> truth) keeps things >>>>>>>>>>>>>>>>>>>> simple hence it's a conscious design decision we agreed >>>>>>>>>>>>>>>>>>>> during the initial >>>>>>>>>>>>>>>>>>>> stages. However, possible extension to this scheme is to >>>>>>>>>>>>>>>>>>>> have multiple >>>>>>>>>>>>>>>>>>>> coordinators ( each responsible for coordinating a subset >>>>>>>>>>>>>>>>>>>> of queues in the >>>>>>>>>>>>>>>>>>>> cluster), that will be some what similar to kafka. >>>>>>>>>>>>>>>>>>>> Even if its preferable to have no >>>>>>>>>>>>>>>>>>>> coordinator at-all, (to decide how messages are >>>>>>>>>>>>>>>>>>>> disseminated in the >>>>>>>>>>>>>>>>>>>> cluster) that will make us give up desired behaviour such >>>>>>>>>>>>>>>>>>>> as delivering >>>>>>>>>>>>>>>>>>>> a good mix of messages (from different publishers) to >>>>>>>>>>>>>>>>>>>> consumers in a >>>>>>>>>>>>>>>>>>>> cluster. having said this, we have an ongoing research on >>>>>>>>>>>>>>>>>>>> how to improve >>>>>>>>>>>>>>>>>>>> the algorithm and we like to try out both these approaches. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 1:31 PM, Malaka Silva < >>>>>>>>>>>>>>>>>>>> mal...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> The same issue with Hazelcast can be experienced with >>>>>>>>>>>>>>>>>>>>> ESB inbounds (running on top of NTASK) and VFS >>>>>>>>>>>>>>>>>>>>> distribution locks. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> The idea of only single worker works at a given time >>>>>>>>>>>>>>>>>>>>> breaks if there is a Hazelcast heart beat fails. This >>>>>>>>>>>>>>>>>>>>> will make two workers >>>>>>>>>>>>>>>>>>>>> to work in parallel. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Also with distributed locking there is no guarantee >>>>>>>>>>>>>>>>>>>>> that file is only process only by one worker. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> So in the case of network fail >>>>>>>>>>>>>>>>>>>>> with DB >>>>>>>>>>>>>>>>>>>>> make sense to stop processing until it's recovered. >>>>>>>>>>>>>>>>>>>>> Also making this component generic ESB can reuse. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 9:21 AM, Asitha Nanayakkara < >>>>>>>>>>>>>>>>>>>>> asi...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Hi Imesh, >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 7:33 AM, Imesh Gunaratne < >>>>>>>>>>>>>>>>>>>>>> im...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> On Fri, Aug 5, 2016 at 7:31 AM, Imesh Gunaratne < >>>>>>>>>>>>>>>>>>>>>>> im...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> You can see here [3] how K8S has implemented leader >>>>>>>>>>>>>>>>>>>>>>>> election feature for the products deployed on top of >>>>>>>>>>>>>>>>>>>>>>>> that to utilize. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> Correction: Please refer [4]. >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Aug 4, 2016 at 7:27 PM, Asanka Abeyweera < >>>>>>>>>>>>>>>>>>>>>>>>> asank...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Hi Imesh, >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> We are not implementing this to overcome a >>>>>>>>>>>>>>>>>>>>>>>>>> limitation in the coordination algorithm available >>>>>>>>>>>>>>>>>>>>>>>>>> in the Hazlecast. We are >>>>>>>>>>>>>>>>>>>>>>>>>> implementing this since we need an RDBMS based >>>>>>>>>>>>>>>>>>>>>>>>>> coordination algorithm (not >>>>>>>>>>>>>>>>>>>>>>>>>> a network based algorithm). >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Are you saying that database connections do not >>>>>>>>>>>>>>>>>>>>>>>> use the same network used by Hazelcast? >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> The reason is, a network based election algorithm >>>>>>>>>>>>>>>>>>>>>>>>>> will always elect multiple leaders when the network >>>>>>>>>>>>>>>>>>>>>>>>>> is partitioned. But if >>>>>>>>>>>>>>>>>>>>>>>>>> we use a RDBMS based algorithm this will not happen. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> I do not think your argument is correct. If there >>>>>>>>>>>>>>>>>>>>>>>> is a problem with the network, it may apply to both >>>>>>>>>>>>>>>>>>>>>>>> Hazelcast based >>>>>>>>>>>>>>>>>>>>>>>> solution and database based solution. >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Yes, if the same network interface is used network >>>>>>>>>>>>>>>>>>>>>> partion will cause all types of connections to be >>>>>>>>>>>>>>>>>>>>>> partitioned. But user can >>>>>>>>>>>>>>>>>>>>>> use multiple network interfaces for database, Hazelcast >>>>>>>>>>>>>>>>>>>>>> and thrift. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Following is the scenario we are trying to solve in >>>>>>>>>>>>>>>>>>>>>> MB. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> In MB all the details related to messages, >>>>>>>>>>>>>>>>>>>>>> subscriptions, queues, topics etc are stored in >>>>>>>>>>>>>>>>>>>>>> database. And we operate >>>>>>>>>>>>>>>>>>>>>> depending on that information. If the MB node can't >>>>>>>>>>>>>>>>>>>>>> connect to the database >>>>>>>>>>>>>>>>>>>>>> that means the node is ineffective in the cluster until >>>>>>>>>>>>>>>>>>>>>> it can make a >>>>>>>>>>>>>>>>>>>>>> database connection. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> We have seen instances where Hazelcast cluster get >>>>>>>>>>>>>>>>>>>>>> partitioned for some time period in networks, Reasons >>>>>>>>>>>>>>>>>>>>>> were, >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> 1. Due to heavy load Hazelcast couldn't process >>>>>>>>>>>>>>>>>>>>>> or send (some times both) hearbeats, hence a network >>>>>>>>>>>>>>>>>>>>>> partition for >>>>>>>>>>>>>>>>>>>>>> Hazelcast cluster >>>>>>>>>>>>>>>>>>>>>> 2. An actual network partition of Hazelcast >>>>>>>>>>>>>>>>>>>>>> cluster >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> In both scenarios the database connection was >>>>>>>>>>>>>>>>>>>>>> working. In that case we get two coordinators elected >>>>>>>>>>>>>>>>>>>>>> through Hazelcast and >>>>>>>>>>>>>>>>>>>>>> working on the same database to deliver the messages. >>>>>>>>>>>>>>>>>>>>>> this leads to >>>>>>>>>>>>>>>>>>>>>> inconsistencies in the cluster behavior (for instances >>>>>>>>>>>>>>>>>>>>>> duplicate message >>>>>>>>>>>>>>>>>>>>>> delivery, corrupred subscription states etc) . >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Since the point of interest for MB is the database, >>>>>>>>>>>>>>>>>>>>>> we decided to do the coordinator election through >>>>>>>>>>>>>>>>>>>>>> database as well. If the >>>>>>>>>>>>>>>>>>>>>> node can't connect to the database, then the MB won't >>>>>>>>>>>>>>>>>>>>>> operate anyway. >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>>>>>>> Asitha >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> [4] http://blog.kubernetes.io/ >>>>>>>>>>>>>>>>>>>>>>>> 2016/01/simple-leader-election-with-Kubernetes.html >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Aug 4, 2016 at 7:16 PM, Imesh Gunaratne < >>>>>>>>>>>>>>>>>>>>>>>>>> im...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Asanka, >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Do we really need to implement a leader election >>>>>>>>>>>>>>>>>>>>>>>>>>> algorithm on our own? AFAIU this is a complex >>>>>>>>>>>>>>>>>>>>>>>>>>> problem which has been >>>>>>>>>>>>>>>>>>>>>>>>>>> already solved by several algorithms [1]. IMO it >>>>>>>>>>>>>>>>>>>>>>>>>>> would be better to go >>>>>>>>>>>>>>>>>>>>>>>>>>> ahead with an existing well established >>>>>>>>>>>>>>>>>>>>>>>>>>> implementation on etcd [1] or >>>>>>>>>>>>>>>>>>>>>>>>>>> Consul [2]. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Those provide HTTP APIs for clients to make >>>>>>>>>>>>>>>>>>>>>>>>>>> leader election calls. [3] is a client library >>>>>>>>>>>>>>>>>>>>>>>>>>> written in Node.js for etcd >>>>>>>>>>>>>>>>>>>>>>>>>>> based leader election. >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> [1] https://www.projectcalico. >>>>>>>>>>>>>>>>>>>>>>>>>>> org/using-etcd-for-elections >>>>>>>>>>>>>>>>>>>>>>>>>>> [2] https://www.consul.io/docs >>>>>>>>>>>>>>>>>>>>>>>>>>> /guides/leader-election.html >>>>>>>>>>>>>>>>>>>>>>>>>>> [3] https://www.npmjs.com/package/etcd-leader >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Aug 3, 2016 at 5:12 PM, Asanka Abeyweera >>>>>>>>>>>>>>>>>>>>>>>>>>> <asank...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Maninda, >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Since we are using RDBMS to poll the node >>>>>>>>>>>>>>>>>>>>>>>>>>>> status, the cluster will not end up in situation >>>>>>>>>>>>>>>>>>>>>>>>>>>> 1,2 or 3. With this >>>>>>>>>>>>>>>>>>>>>>>>>>>> approach we consider a node unreachable when it >>>>>>>>>>>>>>>>>>>>>>>>>>>> cannot access the database. >>>>>>>>>>>>>>>>>>>>>>>>>>>> Therefore an unreachable node can never be the >>>>>>>>>>>>>>>>>>>>>>>>>>>> leader. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> As you have mentioned, we are currently using >>>>>>>>>>>>>>>>>>>>>>>>>>>> the RDBMS as an atomic global variable to create >>>>>>>>>>>>>>>>>>>>>>>>>>>> the coordinator entry. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> On Tue, Aug 2, 2016 at 5:22 PM, Maninda >>>>>>>>>>>>>>>>>>>>>>>>>>>> Edirisooriya <mani...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Asanka, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> As I understand the accuracy of electing the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> leader correctly is dependent on the election >>>>>>>>>>>>>>>>>>>>>>>>>>>>> mechanism with RDBMS because >>>>>>>>>>>>>>>>>>>>>>>>>>>>> there can be edge cases like, >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1. Unreachable leader activates during the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> election process: Then who becomes the leader? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2. The elected leader becomes unreachable >>>>>>>>>>>>>>>>>>>>>>>>>>>>> before the election is completed: Then will there >>>>>>>>>>>>>>>>>>>>>>>>>>>>> be a situation where >>>>>>>>>>>>>>>>>>>>>>>>>>>>> there is no leader? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 3. A leader and a set of nodes are >>>>>>>>>>>>>>>>>>>>>>>>>>>>> disconnected from the other part of the cluster >>>>>>>>>>>>>>>>>>>>>>>>>>>>> and while the leader is >>>>>>>>>>>>>>>>>>>>>>>>>>>>> trying to remove unreachable members other part >>>>>>>>>>>>>>>>>>>>>>>>>>>>> is calling an election to >>>>>>>>>>>>>>>>>>>>>>>>>>>>> make a leader: Who will win? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> RDBMS based election algorithm should handle >>>>>>>>>>>>>>>>>>>>>>>>>>>>> such cases without bringing the cluster to an >>>>>>>>>>>>>>>>>>>>>>>>>>>>> inconsistent state or dead >>>>>>>>>>>>>>>>>>>>>>>>>>>>> lock in all concurrent cases. If all these kind >>>>>>>>>>>>>>>>>>>>>>>>>>>>> of cases cannot be handled >>>>>>>>>>>>>>>>>>>>>>>>>>>>> isn't it better to keep the current hazelcast >>>>>>>>>>>>>>>>>>>>>>>>>>>>> clustering and use the RDBMS >>>>>>>>>>>>>>>>>>>>>>>>>>>>> only to handle the split brain scenario? In other >>>>>>>>>>>>>>>>>>>>>>>>>>>>> words when a new >>>>>>>>>>>>>>>>>>>>>>>>>>>>> hazelcast leader is elected it should be updated >>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the RDBMS. If another >>>>>>>>>>>>>>>>>>>>>>>>>>>>> split party has already elected a leader, the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> node who is going to write it >>>>>>>>>>>>>>>>>>>>>>>>>>>>> to RDBMS should avoid updating it. Simply, the >>>>>>>>>>>>>>>>>>>>>>>>>>>>> RDBMS can be used as an >>>>>>>>>>>>>>>>>>>>>>>>>>>>> atomic global variable to keep the leader name by >>>>>>>>>>>>>>>>>>>>>>>>>>>>> modifying the hazelcast >>>>>>>>>>>>>>>>>>>>>>>>>>>>> clustering. WDYT? >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Maninda Edirisooriya* >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *WSO2, Inc.*lean.enterprise.middleware. >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Blog* : http://maninda.blogspot.com/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *E-mail* : mani...@wso2.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Skype* : @manindae >>>>>>>>>>>>>>>>>>>>>>>>>>>>> *Twitter* : @maninda >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Jul 28, 2016 at 4:38 PM, Asanka >>>>>>>>>>>>>>>>>>>>>>>>>>>>> Abeyweera <asank...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi Akila, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Let me explain the issue in a different way. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Let's assume the MB nodes are using two >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> different network interfaces for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hazelcast communication and database >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> communication. With such a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> configuration, there can be failures only in the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> network interface used for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hazelcast communication in some nodes. When this >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> happens, there will be two >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> or more Hazelcast clusters due to the network >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> segmentation, and as a result >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> there will be multiple coordinators. Since every >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> node still have access to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the database, multiple coordinators can affect >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the correctness of the data >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stored in the DB. But if we used a RDBMS based >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> approach we won't have >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> multiple coordinators due to a network partition >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in Hazelcast. This is one >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> advantage we get from this approach. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Even when we use Zookeeper or RAFT the same >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> issue will be there since we are using different >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> interfaces for Hazelcast >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> communication and DB communication. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Jul 28, 2016 at 2:56 PM, Akila >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Ravihansa Perera <raviha...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> What's the advantage of using RDBMS (even as >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> an alternative) to implement a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> leader/coordinator election? If the network >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connection to DB fails then this will be a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> single point of failure. I don't >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> think we can scale RDBMS instances and expect >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the election algorithm to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> work. That would be reducing this problem to >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> another problem (electing >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> coordinator RDBMS instance). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IMHO it would be better to look at Zookeeper >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Atomic Broadcast (ZAB) [1] or RAFT leader >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> election [2] algorithms which >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> have already proven results. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [1] https://cwiki.apache.org/c >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> onfluence/display/ZOOKEEPER/Zab1.0 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [2] http://libraft.io/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Jul 28, 2016 at 1:42 PM, Nandika >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Jayawardana <nand...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> +1 to make it a common component . We have >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the clustering implementation for BPEL >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> component based on hazelcast. If >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the coordination is available at RDBMS level, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> we can remove hazelcast >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> dependancy. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Regards >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Nandika >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Jul 28, 2016 at 1:28 PM, Hasitha >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Aravinda <hasi...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Can we make it a common component, which >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is not hard coupled with MB. BPS has the same >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> requirement. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hasitha. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Thu, Jul 28, 2016 at 9:47 AM, Asanka >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Abeyweera <asank...@wso2.com> wrote: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi All, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> In MB, we have used a coordinator based >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> approach to manage distributed messaging >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> algorithm in the cluster. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Currently Hazelcast is used to elect the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> coordinator. But one issue we >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> faced with Hazelcast is, during a network >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> segmentation (split brain), >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hazelcast can elect two or more coordinators >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> in the cluster. This affects >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the correctness of the distributed messaging >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> algorithm since there are some >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tables in the database that should only be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> edited by a single node (i.e. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> coordinator). >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> As a solution to this problem we have >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> implemented minimum node count based >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> approach [1] to deactivate set of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> partitioned nodes to stop multiple nodes >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> becoming coordinators until the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> network segmentation issue is fixed. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> As an alternative solution, we are >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thinking of implementing an RDBMS based >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> approach to elect the coordinator >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> node in the cluster. By doing this we can >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> make sure that even during a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> network segmentation only one node will be >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> elected as the coordinator node >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> since the election is happening through the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> database. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> The algorithm will use a polling >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mechanism to check the validity of the >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> nodes. To make the election >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> algorithm scalable, only the coordinator >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> node will be checking status of >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> all the nodes in the cluster and it will >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> inform other nodes through >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> database when a member is added/left. The >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> nodes will be only checking for >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the status of the coordinator node. When a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> node detect that coordinator is >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> invalid it will go for a election to elect a >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> new coordinator. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> We are currently working on a POC to test >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> how this works with MB's slot based >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> messaging algorithm. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> thoughts? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [1] https://wso2.org/jira/browse/MB-1664 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Asanka Abeyweera >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Phone: +94 712228648 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Blog: a5anka.github.io >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ______________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hasitha Aravinda, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Associate Technical Lead, >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Email: hasi...@wso2.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mobile : +94 718 210 200 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ______________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Nandika Jayawardana >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc ; http://wso2.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ______________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Akila Ravihansa Perera >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc.; http://wso2.com/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Blog: http://ravihansa3000.blogspot.com >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ______________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Asanka Abeyweera >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Phone: +94 712228648 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Blog: a5anka.github.io >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ______________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>>> Asanka Abeyweera >>>>>>>>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> Phone: +94 712228648 >>>>>>>>>>>>>>>>>>>>>>>>>>>> Blog: a5anka.github.io >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>>> *Imesh Gunaratne* >>>>>>>>>>>>>>>>>>>>>>>>>>> Software Architect >>>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc: http://wso2.com >>>>>>>>>>>>>>>>>>>>>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>>>>>>>>>>>>>>>>>>>>>> W: https://medium.com/@imesh TW: @imesh >>>>>>>>>>>>>>>>>>>>>>>>>>> lean. enterprise. middleware >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>>> Asanka Abeyweera >>>>>>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc. >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> Phone: +94 712228648 >>>>>>>>>>>>>>>>>>>>>>>>>> Blog: a5anka.github.io >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>>> Ramith Jayasinghe >>>>>>>>>>>>>>>>>>>>>>>>> Technical Lead >>>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc., http://wso2.com >>>>>>>>>>>>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> E: ram...@wso2.com >>>>>>>>>>>>>>>>>>>>>>>>> P: +94 772534930 >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>>> *Imesh Gunaratne* >>>>>>>>>>>>>>>>>>>>>>>> Software Architect >>>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc: http://wso2.com >>>>>>>>>>>>>>>>>>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>>>>>>>>>>>>>>>>>>> W: https://medium.com/@imesh TW: @imesh >>>>>>>>>>>>>>>>>>>>>>>> lean. enterprise. middleware >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>>> *Imesh Gunaratne* >>>>>>>>>>>>>>>>>>>>>>> Software Architect >>>>>>>>>>>>>>>>>>>>>>> WSO2 Inc: http://wso2.com >>>>>>>>>>>>>>>>>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>>>>>>>>>>>>>>>>>> W: https://medium.com/@imesh TW: @imesh >>>>>>>>>>>>>>>>>>>>>>> lean. enterprise. middleware >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>>> *Asitha Nanayakkara* <http://asitha.github.io/> >>>>>>>>>>>>>>>>>>>>>> Senior Software Engineer >>>>>>>>>>>>>>>>>>>>>> WSO2, Inc. <http://wso2.com/> >>>>>>>>>>>>>>>>>>>>>> Mob: +94 77 853 0682 >>>>>>>>>>>>>>>>>>>>>> [image: https://wso2.com/signature] >>>>>>>>>>>>>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Best Regards, >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Malaka Silva >>>>>>>>>>>>>>>>>>>>> Senior Technical Lead >>>>>>>>>>>>>>>>>>>>> M: +94 777 219 791 >>>>>>>>>>>>>>>>>>>>> Tel : 94 11 214 5345 >>>>>>>>>>>>>>>>>>>>> Fax :94 11 2145300 >>>>>>>>>>>>>>>>>>>>> Skype : malaka.sampath.silva >>>>>>>>>>>>>>>>>>>>> LinkedIn : http://www.linkedin.com/pub/ >>>>>>>>>>>>>>>>>>>>> malaka-silva/6/33/77 >>>>>>>>>>>>>>>>>>>>> Blog : http://mrmalakasilva.blogspot.com/ >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> WSO2, Inc. >>>>>>>>>>>>>>>>>>>>> lean . enterprise . middleware >>>>>>>>>>>>>>>>>>>>> https://wso2.com/signature >>>>>>>>>>>>>>>>>>>>> http://www.wso2.com/about/team/malaka-silva/ >>>>>>>>>>>>>>>>>>>>> <http://wso2.com/about/team/malaka-silva/> >>>>>>>>>>>>>>>>>>>>> https://store.wso2.com/store/ >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Don't make Trees rare, we should keep them with care >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> Ramith Jayasinghe >>>>>>>>>>>>>>>>>>>> Technical Lead >>>>>>>>>>>>>>>>>>>> WSO2 Inc., http://wso2.com >>>>>>>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> E: ram...@wso2.com >>>>>>>>>>>>>>>>>>>> P: +94 772534930 >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/ >>>>>>>>>>>>>>>>>>>> mailman/listinfo/architecture >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> Sajini De SIlva >>>>>>>>>>>>>>>>>> Senior Software Engineer; WSO2 Inc.; http://wso2.com , >>>>>>>>>>>>>>>>>> Email: saj...@wso2.com >>>>>>>>>>>>>>>>>> Blog: http://sajinid.blogspot.com/ >>>>>>>>>>>>>>>>>> Git hub profile: https://github.com/sajinidesilva >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Phone: +94 712797729 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> Sajini De SIlva >>>>>>>>>>>>>>>> Senior Software Engineer; WSO2 Inc.; http://wso2.com , >>>>>>>>>>>>>>>> Email: saj...@wso2.com >>>>>>>>>>>>>>>> Blog: http://sajinid.blogspot.com/ >>>>>>>>>>>>>>>> Git hub profile: https://github.com/sajinidesilva >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Phone: +94 712797729 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Kasun Indrasiri >>>>>>>>>>>>>>> Director, Integration Technologies >>>>>>>>>>>>>>> WSO2, Inc.; http://wso2.com >>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> cell: +1 650 450 2293 >>>>>>>>>>>>>>> Blog : http://kasunpanorama.blogspot.com/ >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> *Anjana Fernando* >>>>>>>>>>>>>> Associate Director / Architect >>>>>>>>>>>>>> WSO2 Inc. | http://wso2.com >>>>>>>>>>>>>> lean . enterprise . middleware >>>>>>>>>>>>>> >>>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>>> Architecture mailing list >>>>>>>>>>>>>> Architecture@wso2.org >>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Anjana Fernando* >>>>>>>>>>>> Associate Director / Architect >>>>>>>>>>>> WSO2 Inc. | http://wso2.com >>>>>>>>>>>> lean . enterprise . middleware >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Asanka Abeyweera >>>>>>>>>>> Senior Software Engineer >>>>>>>>>>> WSO2 Inc. >>>>>>>>>>> >>>>>>>>>>> Phone: +94 712228648 >>>>>>>>>>> Blog: a5anka.github.io >>>>>>>>>>> >>>>>>>>>>> <https://wso2.com/signature> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> *Anjana Fernando* >>>>>>>>>> Associate Director / Architect >>>>>>>>>> WSO2 Inc. | http://wso2.com >>>>>>>>>> lean . enterprise . middleware >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Anjana Fernando* >>>>>>>>> Associate Director / Architect >>>>>>>>> WSO2 Inc. | http://wso2.com >>>>>>>>> lean . enterprise . middleware >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Asanka Abeyweera >>>>>>>> Senior Software Engineer >>>>>>>> WSO2 Inc. >>>>>>>> >>>>>>>> Phone: +94 712228648 >>>>>>>> Blog: a5anka.github.io >>>>>>>> >>>>>>>> <https://wso2.com/signature> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Anjana Fernando* >>>>>>> Associate Director / Architect >>>>>>> WSO2 Inc. | http://wso2.com >>>>>>> lean . enterprise . middleware >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Anjana Fernando* >>>>>> Associate Director / Architect >>>>>> WSO2 Inc. | http://wso2.com >>>>>> lean . enterprise . middleware >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Ramith Jayasinghe >>>>> Technical Lead >>>>> WSO2 Inc., http://wso2.com >>>>> lean.enterprise.middleware >>>>> >>>>> E: ram...@wso2.com >>>>> P: +94 772534930 >>>>> >>>> >>>> >>>> >>>> -- >>>> *Anjana Fernando* >>>> Associate Director / Architect >>>> WSO2 Inc. | http://wso2.com >>>> lean . enterprise . middleware >>>> >>> >>> >>> >>> -- >>> Ramith Jayasinghe >>> Technical Lead >>> WSO2 Inc., http://wso2.com >>> lean.enterprise.middleware >>> >>> E: ram...@wso2.com >>> P: +94 772534930 <+94%2077%20253%204930> >>> >> >> >> >> -- >> Asanka Abeyweera >> Senior Software Engineer >> WSO2 Inc. >> >> Phone: +94 712228648 <+94%2071%20222%208648> >> Blog: a5anka.github.io >> >> <https://wso2.com/signature> >> > > > > -- > *Anjana Fernando* > Associate Director / Architect > WSO2 Inc. | http://wso2.com > lean . enterprise . middleware > -- Asanka Abeyweera Senior Software Engineer WSO2 Inc. Phone: +94 712228648 Blog: a5anka.github.io <https://wso2.com/signature>
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture