https://issues.apache.org/jira/browse/ZOOKEEPER-2169

That's for the TTL work

On Mon, Apr 13, 2015 at 6:51 PM, Michi Mutsuzaki <mutsuz...@gmail.com>
wrote:

> We should move the discussion to JIRA so that we don't lose all the
> inputs. Camille, could you open 2 JIRAs when you get a chance?
>
> 1. Node TTLs
> 2. Pluggable RPC endpoints, starting with HTTP
>
>
> On Mon, Apr 13, 2015 at 3:00 PM, Patrick Hunt <ph...@apache.org> wrote:
> > That's really the easy part. Coming up with something that will work in
> our
> > context is the harder bit IMO. For example, if you have multiple REST
> > service endpoints how will that work, one per zk server? Are you going to
> > tie a particular client session to a particular server, how will sessions
> > be maintained. Would you want to put a http load balancer in between?
> > Typically you want to do this otw you need more logic on the client (like
> > we have today in the java client). Seems like there's a lot of these
> types
> > of issues that would need to be worked through. Same (but different) for
> > thrift support.
> >
> > Patrick
> >
> > On Mon, Apr 13, 2015 at 2:19 PM, Flavio Junqueira <
> > fpjunque...@yahoo.com.invalid> wrote:
> >
> >> I also like the plugin idea, it's a good one.
> >>
> >> -Flavio
> >>
> >> > On 13 Apr 2015, at 18:58, Patrick Hunt <ph...@apache.org> wrote:
> >> >
> >> > Once something is generally available, embedded and easy to enable, it
> >> > probably won't take much for someone to extend. Once they see the
> >> benefits.
> >> > Although there are already folks interested in what we have today.
> >> >
> >> > We could do the same thing re thrift, or any other "plugin" for that
> >> > matter, (enable dynamic config of embedded endpoint) if there's
> interest.
> >> >
> >> > Patrick
> >> >
> >> > On Mon, Apr 13, 2015 at 10:48 AM, Camille Fournier <
> cami...@apache.org>
> >> > wrote:
> >> >
> >> >> Yes ok agreed. I do personally think fully supporting TTL nodes (and
> >> >> long-poll based watches) for purposes of enabling the same types of
> >> >> high-level behaviors as etcd/consul would probably be useful, as per
> the
> >> >> original start of this epic thread. But even starting with an
> embedded
> >> >> proxy is a good start.
> >> >>
> >> >> C
> >> >>
> >> >> On Mon, Apr 13, 2015 at 1:42 PM, Patrick Hunt <ph...@apache.org>
> wrote:
> >> >>
> >> >>> We already have a proxy. My thought was to take advantage of jetty
> now
> >> >>> being embedded in ZK (3.5+) so that a proxy wouldn't be necessary.
> >> >>>
> >> >>> Patrick
> >> >>>
> >> >>> On Mon, Apr 13, 2015 at 10:39 AM, Camille Fournier <
> cami...@apache.org
> >> >
> >> >>> wrote:
> >> >>>
> >> >>>> I've lost the thread now. Are we talking about inside of the ZK
> >> servers
> >> >>>> themselves, or as a proxy in front of them?
> >> >>>>
> >> >>>> On Mon, Apr 13, 2015 at 1:35 PM, Jordan Zimmerman <
> >> >>>> jor...@jordanzimmerman.com> wrote:
> >> >>>>
> >> >>>>> I agree that get/set kinds of things is useful - especially for
> OPs
> >> >>>>> groups. What if ZK had some sort of pluggable server support? Ops
> >> folks
> >> >>>>> could plug in a simple REST server, others could plug in a Thrift
> >> server,
> >> >>>>> etc.
> >> >>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>> On April 13, 2015 at 12:31:51 PM, Patrick Hunt (ph...@apache.org)
> >> >>>>> wrote:
> >> >>>>>
> >> >>>>> I think it depends on the use case. I've had a number of folks
> asking
> >> >>>>> for
> >> >>>>> the REST support, in those cases I think they are mainly
> interested
> >> in
> >> >>>>> active participation (get/set rather than watches/ephemerals).
> >> >>>>>
> >> >>>>> The SPEC page has all the details on what the REST proxy currently
> >> >>>>> supports.
> >> >>>>>
> >> >>>>> Patrick
> >> >>>>>
> >> >>>>> On Mon, Apr 13, 2015 at 8:35 AM, Jordan Zimmerman <
> >> >>>>> jor...@jordanzimmerman.com> wrote:
> >> >>>>>
> >> >>>>>> How does the current REST code handle watches and background
> >> >>>>>> notifications? Are clients required to poll periodically? This is
> >> >>>>> really
> >> >>>>>> RPC and REST is not ideal for RPC. So, as I mentioned before, I
> >> think
> >> >>>>> the
> >> >>>>>> ZK team should consider a real RPC system like Thrift instead of
> >> REST.
> >> >>>>>>
> >> >>>>>> -Jordan
> >> >>>>>>
> >> >>>>>>
> >> >>>>>>
> >> >>>>>> On April 11, 2015 at 1:33:03 PM, Patrick Hunt (ph...@apache.org)
> >> >>>>> wrote:
> >> >>>>>>
> >> >>>>>> We pack quite a bit of functionality in our client side
> libraries.
> >> >>>>> That's
> >> >>>>>> probably one of the main things you'll noticed if you try to use
> >> >>>>> REST. But
> >> >>>>>> then if your use case is primarily configuration, or something
> that
> >> >>>>> doesn't
> >> >>>>>> require sessions then the current REST support should be more
> than
> >> >>>>>> sufficient. What are the other systems doing that we are
> currently
> >> not
> >> >>>>>> doing wrt API support?
> >> >>>>>>
> >> >>>>>> I'd think that taking our current rest contrib, updating the
> >> >>>>> dependencies,
> >> >>>>>> and deploying as part of the embedded jetty would work well with
> >> >>>>> minimal
> >> >>>>>> effort.
> >> >>>>>>
> >> >>>>>> Patrick
> >> >>>>>>
> >> >>>>>> On Sat, Apr 11, 2015 at 9:22 AM, Camille Fournier <
> >> cami...@apache.org
> >> >>>>>>
> >> >>>>>> wrote:
> >> >>>>>>
> >> >>>>>>> I agree that they have to write clients that do work, but there
> is
> >> >>>>>> clearly
> >> >>>>>>> a desire and willingness out there to do that work in exchange
> for
> >> >>>>> a more
> >> >>>>>>> "obvious" way of interacting. So supporting it should be
> something
> >> >>>>> that
> >> >>>>>> we
> >> >>>>>>> consider if the users of such systems want the option.
> >> >>>>>>>
> >> >>>>>>> On Sat, Apr 11, 2015 at 12:07 PM, Jordan Zimmerman <
> >> >>>>>>> jor...@jordanzimmerman.com> wrote:
> >> >>>>>>>
> >> >>>>>>>> REST has issues for end users. They will still have to write
> >> >>>>> clients
> >> >>>>>> and
> >> >>>>>>>> do a lot of extra work. REST support is good in most languages
> but
> >> >>>>>> having
> >> >>>>>>>> native support is superior. That's why I choose Thrift for the
> >> >>>>>> CuratorRPC
> >> >>>>>>>> Proxy.
> >> >>>>>>>>
> >> >>>>>>>> -Jordan
> >> >>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>> On April 10, 2015 at 9:32:47 PM, Michi Mutsuzaki (
> >> >>>>>> mi...@cs.stanford.edu)
> >> >>>>>>>> wrote:
> >> >>>>>>>>
> >> >>>>>>>> Yeah it's quite painful to manage another set of processes just
> >> >>>>> for
> >> >>>>>>>> proxying requests. I'd definitely use this if I can run it
> >> >>>>> embedded in
> >> >>>>>>>> the ZooKeeper process. I'm very excited about the idea of being
> >> >>>>> able
> >> >>>>>>>> to use curl to look at what's in ZooKeeper :)
> >> >>>>>>>>
> >> >>>>>>>> On Fri, Apr 10, 2015 at 6:03 PM, Patrick Hunt <
> ph...@apache.org>
> >> >>>>>> wrote:
> >> >>>>>>>>> Here's the spec and readme from contrib/rest:
> >> >>>>>>>>>
> >> >>>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>
> >>
> http://svn.apache.org/viewvc/zookeeper/trunk/src/contrib/rest/SPEC.txt?view=markup
> >> >>>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>
> >>
> http://svn.apache.org/viewvc/zookeeper/trunk/src/contrib/rest/README.txt?view=markup
> >> >>>>>>>>>
> >> >>>>>>>>> The current implementation is a standalone proxy. It's not
> >> >>>>> embedded
> >> >>>>>> in
> >> >>>>>>> zk
> >> >>>>>>>>> itself. That might be part of the reason.
> >> >>>>>>>>>
> >> >>>>>>>>> Patrick
> >> >>>>>>>>>
> >> >>>>>>>>> On Fri, Apr 10, 2015 at 4:43 PM, Camille Fournier <
> >> >>>>>> cami...@apache.org>
> >> >>>>>>>>> wrote:
> >> >>>>>>>>>
> >> >>>>>>>>>> Forgive me for not reading the code, can you share in more
> >> >>>>> detail
> >> >>>>>> what
> >> >>>>>>>> the
> >> >>>>>>>>>> existing REST proxy provides? I'm curious why people are
> >> >>>>> jumping to
> >> >>>>>>> use
> >> >>>>>>>>>> etcd because of ease of use w/http access if we already have
> >> >>>>>> something
> >> >>>>>>>> that
> >> >>>>>>>>>> works?
> >> >>>>>>>>>>
> >> >>>>>>>>>> On Fri, Apr 10, 2015 at 7:28 PM, Patrick Hunt <
> >> >>>>> ph...@apache.org>
> >> >>>>>>> wrote:
> >> >>>>>>>>>>
> >> >>>>>>>>>>> There's the REST work in contrib. Both Andrei and I worked
> >> >>>>> on that
> >> >>>>>>> - I
> >> >>>>>>>>>> did
> >> >>>>>>>>>>> the basic support and Andrei added sessions and heartbeating
> >> >>>>> among
> >> >>>>>>>> other
> >> >>>>>>>>>>> improvements.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> Now that 3.5 has embedded Jetty it should be much simpler to
> >> >>>>> run
> >> >>>>>>> REST
> >> >>>>>>>> as
> >> >>>>>>>>>>> part of the ZK service itself. When the original proxy work
> >> >>>>> was
> >> >>>>>> done
> >> >>>>>>>>>> Jetty
> >> >>>>>>>>>>> was not yet part of ZK.
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> Patrick
> >> >>>>>>>>>>>
> >> >>>>>>>>>>> On Thu, Apr 9, 2015 at 10:20 AM, Jordan Zimmerman <
> >> >>>>>>>>>>> jor...@jordanzimmerman.com> wrote:
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>> Since Curator is now Apache and I'm no longer at Netflix, I
> >> >>>>> don't
> >> >>>>>>>> follow
> >> >>>>>>>>>>>> Netflix messages very much. Sorry about that.
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>> -Jordan
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>> On April 9, 2015 at 12:15:02 PM, Camille Fournier (
> >> >>>>>>>> cami...@apache.org)
> >> >>>>>>>>>>>> wrote:
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>> Thanks Jordan! I actually asked on Twitter whether Netflix
> >> >>>>> had
> >> >>>>>>>> anything
> >> >>>>>>>>>>>> but
> >> >>>>>>>>>>>> didn't get a clear answer.
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>> On Thu, Apr 9, 2015 at 11:22 AM, Jordan Zimmerman <
> >> >>>>>>>>>>>> jor...@jordanzimmerman.com> wrote:
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>>> FYI
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> Curator now has a Thrift-based proxy that has all the ZK
> >> >>>>> APIs
> >> >>>>>>>> exposed
> >> >>>>>>>>>> as
> >> >>>>>>>>>>>>> well as Curator's added APIs and recipes:
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> http://curator.apache.org/curator-x-rpc/index.html
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> -Jordan
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> On April 8, 2015 at 2:09:33 PM, Camille Fournier (
> >> >>>>>>>> cami...@apache.org)
> >> >>>>>>>>>>>>> wrote:
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> All,
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> I've been doing a bit of research on etcd as part of work
> >> >>>>> for
> >> >>>>>> an
> >> >>>>>>>>>>>> upcoming
> >> >>>>>>>>>>>>> talk, and it has gotten me thinking about what it would
> >> >>>>> take to
> >> >>>>>>>> create
> >> >>>>>>>>>>>> an
> >> >>>>>>>>>>>>> http version of ZK for certain operations. For many
> >> >>>>> operations
> >> >>>>>>> you
> >> >>>>>>>>>> could
> >> >>>>>>>>>>>>> put an http proxy in front of ZK to translate, even
> >> >>>>>> implementing
> >> >>>>>>>> the
> >> >>>>>>>>>>>>> "long-poll-style" watch operation to some extent. But it
> >> >>>>> would
> >> >>>>>> be
> >> >>>>>>>> very
> >> >>>>>>>>>>>>> hard
> >> >>>>>>>>>>>>> to do a temporary node via a proxy without a lot of proxy
> >> >>>>>>> failover
> >> >>>>>>>>>>>>> complexity.
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> As a bit of background, if you want to do an "ephemeral"
> >> >>>>> node
> >> >>>>>> in
> >> >>>>>>>> etcd,
> >> >>>>>>>>>>>> you
> >> >>>>>>>>>>>>> basically create a key with a TTL. Unless the key is
> >> >>>>> updated
> >> >>>>>>> with a
> >> >>>>>>>>>> new
> >> >>>>>>>>>>>>> TTL, the key will auto-expire when the TTL is reached.
> >> >>>>> Now, I
> >> >>>>>>> have
> >> >>>>>>>> a
> >> >>>>>>>>>> lot
> >> >>>>>>>>>>>>> of
> >> >>>>>>>>>>>>> thoughts about this (seems like you have to implement
> >> >>>>>> heartbeats
> >> >>>>>>>> via
> >> >>>>>>>>>>>> http
> >> >>>>>>>>>>>>> to truly mimic ephemeral nodes which may not be as simple
> >> >>>>> as
> >> >>>>>> all
> >> >>>>>>>> this
> >> >>>>>>>>>>>> http
> >> >>>>>>>>>>>>> sounds), but I do think that if there is appetite for
> >> >>>>> easy http
> >> >>>>>>>> access
> >> >>>>>>>>>>>> for
> >> >>>>>>>>>>>>> consensus systems we should at least take the time to
> >> >>>>> think
> >> >>>>>> about
> >> >>>>>>>> what
> >> >>>>>>>>>>>> it
> >> >>>>>>>>>>>>> would take for us to provide this. In particular, I think
> >> >>>>> we'd
> >> >>>>>>>> have to
> >> >>>>>>>>>>>>> make
> >> >>>>>>>>>>>>> it possible to create a node with a TTL that is not tied
> >> >>>>> to a
> >> >>>>>>>>>> particular
> >> >>>>>>>>>>>>> session.
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> Curious to see if anyone has any thoughts on this. It
> >> >>>>> seems
> >> >>>>>> like
> >> >>>>>>> a
> >> >>>>>>>> bit
> >> >>>>>>>>>>>> of
> >> >>>>>>>>>>>>> a
> >> >>>>>>>>>>>>> shame that ZK, which is a good battle-tested system, is
> >> >>>>>>> frequently
> >> >>>>>>>>>> being
> >> >>>>>>>>>>>>> passed-over these days because of the complexity of
> >> >>>>> clients,
> >> >>>>>> and
> >> >>>>>>>> the
> >> >>>>>>>>>>>> fact
> >> >>>>>>>>>>>>> that it is really pretty damn hard to do a client impl in
> >> >>>>>> certain
> >> >>>>>>>>>>>>> languages
> >> >>>>>>>>>>>>> (Ruby is the notable one I've heard).
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>> Best,
> >> >>>>>>>>>>>>> C
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>>
> >> >>>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>>
> >> >>>>>>>>>>
> >> >>>>>>>>
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>
> >> >>>>
> >> >>>>
> >> >>>
> >> >>
> >>
> >>
>

Reply via email to