Ben,

Can you point me to the place where the queue is inspected to convert
updates into idempotent writes?

On Mon, Dec 20, 2010 at 6:56 PM, Qian Ye <yeqian....@gmail.com> wrote:

> Hi all, have we reached any consensus on this issue? What's our next step
> about it?
> I'm looking forward to make use of this kind of feature.
>
> thanks~
>
> On Fri, Dec 17, 2010 at 3:25 AM, Ted Dunning <ted.dunn...@gmail.com>
> wrote:
>
> > One alternative is to simply specify -1 in the version list to avoid the
> > version check for that one item.  That would allow
> > the subset constraint to be retained as a valid semantic check for most
> > situations and would allow
> > a very explicit way to describe when you want to violate that constraint.
> >
> > On Thu, Dec 16, 2010 at 10:06 AM, Dave Wright <wrig...@gmail.com> wrote:
> >
> > > I'm not sure why (other than your syntax) you would require the second
> > > list (to update) to be a subset of the first (to test). There are
> > > plenty of situations where you may want to update one node based on
> > > the value of another (and test that the value hasn't changed before
> > > updating) but don't really care about the second node, and it would
> > > just be extra overhead to check it's current value. In fact, I think
> > > that was the OP's situation.
> > >
> > > -Dave
> > >
> > > On Thu, Dec 16, 2010 at 1:01 PM, Ted Dunning <ted.dunn...@gmail.com>
> > > wrote:
> > > > Yes.  This is isomorphic to my suggestion to allow null data.  We
> > should
> > > > toss around many options to figure out which is the most congenial
> > idiom.
> > > >  Yours is nice since it has two sets of parallel lists.
> > > >
> > > > In java with optional arguments it would be possible to use a builder
> > > style
> > > > with optional arguments:
> > > >
> > > >               zk.testVersions(node1, version1, node2, version2, ...)
> > > >                       .updateData(node1, data1, node3, data3, ...)
> > > >
> > > > I would tend to make it part of the contract that the nodes in the
> > second
> > > > part be a subset of of the nodes in the first part.  The first method
> > > would
> > > > create an object packaging up the first set of args and the second
> > method
> > > > would do the work.  Of course, this is just syntactic sugar for the
> > more
> > > > list oriented version.
> > > >
> > > > On Thu, Dec 16, 2010 at 8:16 AM, Dave Wright <wrig...@gmail.com>
> > wrote:
> > > >
> > > >> My recommendation would actually be a combination of the two which
> > > >> offers the most flexibility:
> > > >>
> > > >> zoo_multi_test_and_set(List<string> znodesToTest, List<int>
> versions,
> > > >> List<string> znodesToSet, List<byte[]> data)
> > > >>
> > > >> ...this specifies a list of nodes & versions to check, and if the
> > > >> versions match, a list of nodes to set and the associated data.
> > > >> This allows multiple scenarios, including setting nodes other than
> the
> > > >> ones you are version checking, setting more nodes than you version
> > > >> check, checking more nodes than you set, etc.
> > > >> I don't think the implementation would be any harder than either of
> > the
> > > >> others.
> > > >>
> > > >> -Dave
> > > >>
> > > >>
> > > >> On Wed, Dec 15, 2010 at 10:50 AM, Ted Dunning <
> ted.dunn...@gmail.com>
> > > >> wrote:
> > > >> > Well, I would just call the first method set.
> > > >> >
> > > >> > And I think that the second method is no easier to implement and
> > > probably
> > > >> a
> > > >> > bit less useful.
> > > >> >
> > > >> > The idea that the second might be almost as useful as the first is
> > > >> > interesting however.  It probably
> > > >> > means that we should allow some of the data elements to be null or
> > > >> something
> > > >> > to allow for testing
> > > >> > versions but not setting data.
> > > >> >
> > > >> > On Tue, Dec 14, 2010 at 11:21 PM, Qian Ye <yeqian....@gmail.com>
> > > wrote:
> > > >> >
> > > >> >> zoo_multi_test_and_set(List<int> versions, List<string> znodes,
> > > >> >> List<byte[]> data)
> > > >> >>
> > > >> >> can solve the problem I mentioned before, and some relavant
> issues,
> > > like
> > > >> >> hard for programmers to use, as mentioned in mail-archive, should
> > be
> > > >> paid
> > > >> >> attention to. I think we can move small step first, that is,
> > provide
> > > >> >> interface like
> > > >> >>
> > > >> >> zoo_multi_test_and_set(List<int> versions, List<string> znodes,
> > > byte[]
> > > >> >> data, string znode)
> > > >> >>
> > > >> >>
> > > >> >> The API test versions of several different znodes before set one
> > > znode,
> > > >> and
> > > >> >> if the client want to set other znode, it can call this API
> > > repeatedly.
> > > >> >> Because we only set one node by this API, the result will be
> > > straight,
> > > >> >> success or failure. We need not take care of the half-success
> > result.
> > > >> >>
> > > >> >> How do ur guys think about this API?
> > > >> >>
> > > >> >
> > > >>
> > > >
> > >
> >
>
>
>
> --
> With Regards!
>
> Ye, Qian
>

Reply via email to