Return-Path: X-Original-To: apmail-incubator-openmeetings-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-openmeetings-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 026FFD277 for ; Thu, 1 Nov 2012 15:09:05 +0000 (UTC) Received: (qmail 93573 invoked by uid 500); 1 Nov 2012 15:09:04 -0000 Delivered-To: apmail-incubator-openmeetings-dev-archive@incubator.apache.org Received: (qmail 93530 invoked by uid 500); 1 Nov 2012 15:09:03 -0000 Mailing-List: contact openmeetings-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: openmeetings-dev@incubator.apache.org Delivered-To: mailing list openmeetings-dev@incubator.apache.org Received: (qmail 93501 invoked by uid 99); 1 Nov 2012 15:09:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 15:09:02 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of seba.wagner@gmail.com designates 209.85.217.175 as permitted sender) Received: from [209.85.217.175] (HELO mail-lb0-f175.google.com) (209.85.217.175) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2012 15:08:57 +0000 Received: by mail-lb0-f175.google.com with SMTP id y2so1822777lbk.6 for ; Thu, 01 Nov 2012 08:08:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=YqlkFPy8cqA3q7zz9neEJIW7nX/wszqzoGn6A3g2CaA=; b=BGLDr9lMD7OC3/lZ0PkdoTo4vXYm4CSQSQTd6syXrYlMcglvMuY94oaiFgkhLMCQnL 7HmmutJIBVd2fIsnlccns0DyTzszz4Dqj29+sa8qEvf3ZGlfhlM3FAgjJ/IWoqXb0YLu Ch2f8y3PklfcRcPWBHg8FE8zjuEQDY5NW36eGLHvPO/ng7auVN9fxZjqIlTT36hzaSqh kJnEdb2moRvJhEBM+YkP/tI0khMUZ425d3Hyuak4p+D8RylClpwE6igEewOfHKS7K+7b 0Reum7Sq0NNZ3SywLglGswoxj3NVeqyXQuTE3kbVfeRhYHnp2MyOjzS5R5bgGrhQqM82 fphA== Received: by 10.112.42.233 with SMTP id r9mr15318605lbl.76.1351782515405; Thu, 01 Nov 2012 08:08:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.112.101.65 with HTTP; Thu, 1 Nov 2012 08:08:15 -0700 (PDT) In-Reply-To: References: From: "seba.wagner@gmail.com" Date: Thu, 1 Nov 2012 16:08:15 +0100 Message-ID: Subject: Re: OpenMeetings in clustering with Master/Slave - Public API Review To: Maxim Solodovnik Cc: "openmeetings-dev@incubator.apache.org" Content-Type: multipart/alternative; boundary=90e6ba10a7dfa4f29f04cd7064b8 X-Virus-Checked: Checked by ClamAV on apache.org --90e6ba10a7dfa4f29f04cd7064b8 Content-Type: text/plain; charset=ISO-8859-1 Yeah, sorry but you should get comfortable with it :)) Nodes in the cluster have to communicate with each other, so they now "I am here". And any communication between nodes should happen via a defined API. What you want to get rid of I rather see as an enhancement. With the ping method the master not only knows the userload on all nodes but also which of the nodes are really online. I know that in the PHP, Mysql, LAMP world load balancing and clustering is done by using RSync scripts to sync data between Nodes and making some MySQL replication. That might be the standard way to cluster and scale here. And then you do some round rubin as load balancer. But we are not a PHP, MySQL, LAMP application. We have caches, we create sequences in all instances that write to the database. Later on we should implement Transactions, so that we can really do "RollBack" if for example a User registration fails, so that not part of the user is written to db while other part isn't. Ideally in our setup the "slaves" do not need a database at all. They simply do streaming of audio/video and sync messages between the clients of a conference room. Only the master handles db (how we scale/cluster the master is a quite different story). What we are doing now is one step in that direction. Make the slave do less db related stuff until finally slaves will do streaming only. And finally we can then think about how to apply the existing Red5-Clustering based on Edge-Orion clustering where the RTMPClient acts a StreamProxy. Sebastian 2012/11/1 Maxim Solodovnik > Sorry forgot we have only 1 db. Trying to invent simplier ways to set up > cluster (without all those manual syncronisations) > On Nov 1, 2012 9:31 PM, "seba.wagner@gmail.com" > wrote: > >> Sorry I don't understand. What has db-clustering todo with the RPC >> Gateway now? >> >> Sebastian >> >> >> 2012/11/1 Maxim Solodovnik >> >>> Maybe db-clustering can be used? Like MySQL supports clustering ... >>> On Nov 1, 2012 9:25 PM, "Maxim Solodovnik" wrote: >>> >>>> Is any soap user can send such ping? >>>> On Nov 1, 2012 9:10 PM, "seba.wagner@gmail.com" >>>> wrote: >>>> >>>>> native Java rpc, I guess you want to serialize the objects to transfer >>>>> between the instances and transfer via Sockets. >>>>> As far as I understood we then would need to set up our own >>>>> SocketListener and need yet another port to communicate between the >>>>> instances. >>>>> I am rather afraid of the security flaws that we might open the door, >>>>> I would rather use the existing RPC Gateways that we have. >>>>> A simple HTTP Rest call can be quite similar in terms of runtime >>>>> length. >>>>> After all, master and slaves do not communicate in "real time". The >>>>> slaves ping the master every 3 seconds and update their status. So if the >>>>> call takes 200 milliseconds or 400 milliseconds does not matter at this >>>>> point. >>>>> >>>>> Sebastian >>>>> >>>>> >>>>> 2012/11/1 Maxim Solodovnik >>>>> >>>>>> Ah OK. I thought of native Java rpc, but I guess you are right. >>>>>> Soap/rest looks so heavy :( >>>>>> On Nov 1, 2012 8:53 PM, "seba.wagner@gmail.com" < >>>>>> seba.wagner@gmail.com> wrote: >>>>>> >>>>>>> What do you mean by RPC? >>>>>>> REST/SOAP are actually RPC Gateways. >>>>>>> Also SOAP/REST is our standard RPC Gateway API. >>>>>>> So what additionally RPC Gateway are you refering to? >>>>>>> >>>>>>> If we "open" yet another "door" to interact with OpenMeetings we >>>>>>> should either make all remote calls that are available via SOAP/REST >>>>>>> available via that door too (or maybe I did just not understood what you >>>>>>> mean :)) >>>>>>> >>>>>>> Sebastian >>>>>>> >>>>>>> >>>>>>> 2012/11/1 Maxim Solodovnik >>>>>>> >>>>>>>> Maybe it make sense to use RPC instead of rest/soap? It should be >>>>>>>> faster. Or speed is not critical? >>>>>>>> On Oct 30, 2012 4:44 PM, "seba.wagner@gmail.com" < >>>>>>>> seba.wagner@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> we have been discussing some of the cluster approaches. >>>>>>>>> I have summarized some graphs and a API descriptions: >>>>>>>>> >>>>>>>>> https://cwiki.apache.org/confluence/display/OPENMEETINGS/Cluster+Master-Slave+overview >>>>>>>>> >>>>>>>>> Sebastian >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Sebastian Wagner >>>>>>>>> https://twitter.com/#!/dead_lock >>>>>>>>> http://www.webbase-design.de >>>>>>>>> http://www.wagner-sebastian.com >>>>>>>>> seba.wagner@gmail.com >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sebastian Wagner >>>>>>> https://twitter.com/#!/dead_lock >>>>>>> http://www.webbase-design.de >>>>>>> http://www.wagner-sebastian.com >>>>>>> seba.wagner@gmail.com >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Sebastian Wagner >>>>> https://twitter.com/#!/dead_lock >>>>> http://www.webbase-design.de >>>>> http://www.wagner-sebastian.com >>>>> seba.wagner@gmail.com >>>>> >>>> >> >> >> -- >> Sebastian Wagner >> https://twitter.com/#!/dead_lock >> http://www.webbase-design.de >> http://www.wagner-sebastian.com >> seba.wagner@gmail.com >> > -- Sebastian Wagner https://twitter.com/#!/dead_lock http://www.webbase-design.de http://www.wagner-sebastian.com seba.wagner@gmail.com --90e6ba10a7dfa4f29f04cd7064b8--