I'm sorry, but I don't really understand the drawing
----- Original Message ----- > From: "Shu Ming" <shum...@linux.vnet.ibm.com> > To: "Adam Litke" <a...@us.ibm.com> > Cc: vdsm-devel@lists.fedorahosted.org > Sent: Wednesday, July 11, 2012 10:24:49 AM > Subject: Re: [vdsm] [RFC] An alternative way to provide a supported interface > -- libvdsm > > Adam, > > Maybe, I don't fully understand your proposal. Here is my > understanding of libvdsm in the picture. Please check the following > link > for the picture. > > http://www.ovirt.org/wiki/File:Libvdsm.JPG > > > http://www.ovirt.org/wiki/File:Libvdsm.JPG > > On 2012-7-9 21:56, Adam Litke wrote: > > On Fri, Jul 06, 2012 at 03:53:08PM +0300, Itamar Heim wrote: > >> On 07/06/2012 01:15 AM, Robert Middleswarth wrote: > >>> On 07/05/2012 04:45 PM, Adam Litke wrote: > >>>> On Thu, Jul 05, 2012 at 03:47:42PM -0400, Saggi Mizrahi wrote: > >>>>> ----- Original Message ----- > >>>>>> From: "Adam Litke" <a...@us.ibm.com> > >>>>>> To: "Saggi Mizrahi" <smizr...@redhat.com> > >>>>>> Cc: "Anthony Liguori" <anth...@codemonkey.ws>, "VDSM Project > >>>>>> Development" <vdsm-devel@lists.fedorahosted.org> > >>>>>> Sent: Thursday, July 5, 2012 2:34:50 PM > >>>>>> Subject: Re: [RFC] An alternative way to provide a supported > >>>>>> interface -- libvdsm > >>>>>> > >>>>>> On Wed, Jun 27, 2012 at 02:50:02PM -0400, Saggi Mizrahi wrote: > >>>>>>> The idea of having a supported C API was something I was > >>>>>>> thinking > >>>>>>> about doing > >>>>>>> (But I'd rather use gobject introspection and not schema > >>>>>>> generation) But the > >>>>>>> problem is not having a C API is using the current XML RPC > >>>>>>> API as > >>>>>>> it's base > >>>>>> I want to disect this a bit to find out exactly where there > >>>>>> might be > >>>>>> agreement > >>>>>> and disagreement. > >>>>>> > >>>>>> C API is a good thing to implement - Agreed. > >>>>>> > >>>>>> I also want to use gobject introspection but I don't agree > >>>>>> that using > >>>>>> glib > >>>>>> precludes the use of a formalized schema. My proposal is that > >>>>>> we > >>>>>> write a schema > >>>>>> definition and generate the glib C code from that schema. > >>>>>> > >>>>>> I agree that the _current_ xmlrpc API makes a pretty bad base > >>>>>> from > >>>>>> which to > >>>>>> start a supportable API. XMLRPC is a perfectly reasonable > >>>>>> remote/wire protocol > >>>>>> and I think we should continue using it as a base for the next > >>>>>> generation API. > >>>>>> Using a schema will ensure that the new API is > >>>>>> well-structured. > >>>>> There major problems with XML-RPC (and to some extent with REST > >>>>> as > >>>>> well) are high call overhead and no two way communication (push > >>>>> events). Basing on XML-RPC means that we will never be able to > >>>>> solve > >>>>> these issues. > >>>> I am not sure I am ready to conceed that XML-RPC is too slow for > >>>> our > >>>> needs. Can > >>>> you provide some more detail around this point and possibly > >>>> suggest an > >>>> alternative that has even lower overhead without sacrificing the > >>>> ubiquity and > >>>> usability of XML-RPC? As far as the two-way communication > >>>> point, what > >>>> are the > >>>> options besides AMQP/ZeroMQ? Aren't these even worse from an > >>>> overhead > >>>> perspective than XML-RPC? Regarding two-way communication: you > >>>> can > >>>> write AMQP > >>>> brokers based on the C API and run one on each vdsm host. > >>>> Assuming > >>>> the C API > >>>> supports events, what else would you need? > >>> I personally think that using something like AMQP for inter-node > >>> communication and engine - node would be optimal. With a rest > >>> interface > >>> that just send messages though something like AMQP. > >> I would also not dismiss AMQP so soon > >> we want a bug with more than a single listener at engine side > >> (engine, history db, maybe event correlation service). > >> collectd as a means for statistics already supports it as well. > >> I'm for having REST as well, but not sure as main one for a > >> consumer > >> like ovirt engine. > > I agree that a message bus could be a very useful model of > > communication between > > ovirt-engine components and multiple vdsm instances. But the > > complexities and > > dependencies of AMQP do not make it suitable for use as a low-level > > API. AMQP > > will repel new adopters. Why not establish a libvdsm that is more > > minimalist > > and can be easily used by everyone? Then AMQP brokers can be built > > on top of > > the stable API with ease. All AMQP should require of the low-level > > API are > > standard function calls and an events mechanism. > > > >>> Thanks > >>> Robert > >>>>>>> The current XML-RPC API contains a lot of decencies and > >>>>>>> inefficiencies and we > >>>>>>> would like to retire it as soon as we possibly can. Engine > >>>>>>> would > >>>>>>> like us to > >>>>>>> move to a message based API and 3rd parties want something > >>>>>>> simple > >>>>>>> like REST so > >>>>>>> it looks like no one actually wants to use XML-RPC. Not even > >>>>>>> us. > >>>>>> I am proposing that AMQP brokers and REST APIs could be > >>>>>> written > >>>>>> against the > >>>>>> public API. In fact, they need not even live in the vdsm tree > >>>>>> anymore if that > >>>>>> is what we choose. Core vdsm would only be responsible for > >>>>>> providing > >>>>>> libvdsm > >>>>>> and whatever language bindings we want to support. > >>>>> If we take the libvdsm route, the only reason to even have a > >>>>> REST > >>>>> bridge is only to support OSes other then Linux which is > >>>>> something > >>>>> I'm not sure we care about at the moment. > >>>> That might be true regarding the current in-tree implementation. > >>>> However, I can > >>>> almost guarantee that someone wanting to write a web GUI on top > >>>> of > >>>> standalone > >>>> vdsm would want a REST API to talk to. But libvdsm makes this > >>>> use > >>>> case of no > >>>> concern to the core vdsm developers. > >>>> > >>>>>>> I do think that having C supportability in our API is a good > >>>>>>> idea, > >>>>>>> but the > >>>>>>> current API should not be used as the base. > >>>>>> Let's _start_ with a schema document that describes today's > >>>>>> API and > >>>>>> then clean > >>>>>> it up. I think that will work better than starting from > >>>>>> scratch. > >>>>>> Once my > >>>>>> schema is written I will post it and we can 'patch' it as a > >>>>>> community > >>>>>> until we > >>>>>> arrive at a 1.0 version we are all happy with. > >>>>> +1 > >>>> Ok. Redoubling my efforts to get this done. Describing the > >>>> output of > >>>> list(True) takes awhile :) > >>>> > >>> > >>> _______________________________________________ > >>> vdsm-devel mailing list > >>> vdsm-devel@lists.fedorahosted.org > >>> https://fedorahosted.org/mailman/listinfo/vdsm-devel > >> > >> _______________________________________________ > >> vdsm-devel mailing list > >> vdsm-devel@lists.fedorahosted.org > >> https://fedorahosted.org/mailman/listinfo/vdsm-devel > > > -- > Shu Ming <shum...@linux.vnet.ibm.com> > IBM China Systems and Technology Laboratory > > > _______________________________________________ > vdsm-devel mailing list > vdsm-devel@lists.fedorahosted.org > https://fedorahosted.org/mailman/listinfo/vdsm-devel > _______________________________________________ vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel