[
https://issues.apache.org/jira/browse/ZOOKEEPER-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13049673#comment-13049673
]
Ted Dunning commented on ZOOKEEPER-965:
---------------------------------------
I see a clean compile on my mac. Looks like I don't understand the problem.
I can't run all the tests just now, but last time I looked they ran.
BuzzBook-Pro:zookeeper[trunk*]$ git checkout multi
Switched to branch 'multi'
BuzzBook-Pro:zookeeper[multi*]$ ant clean
Buildfile: /Users/tdunning/Apache/zookeeper/build.xml
...
clean:
BUILD SUCCESSFUL
Total time: 0 seconds
BuzzBook-Pro:zookeeper[multi*]$ ant compile
...
version-info:
[java] Unknown REVISION number, using -1
...
[javac] Compiling 52 source files to
/Users/tdunning/Apache/zookeeper/build/classes
...
[javac] Compiling 134 source files to
/Users/tdunning/Apache/zookeeper/build/classes
BUILD SUCCESSFUL
Total time: 11 seconds
BuzzBook-Pro:zookeeper[multi*]$
On Wed, Jun 15, 2011 at 10:01 AM, Ted Dunning (JIRA) <[email protected]>
https://issues.apache.org/jira/browse/ZOOKEEPER-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13049670#comment-13049670]
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
ZOOKEEPER-965.patch, ZOOKEEPER-965.patch
a list of create, delete, update or check objects each of which has a
desired version or file state in the case of create. If all of the version
and existence constraints can be satisfied, then all updates will be done
atomically.
other style has a "Transaction" that allows builder-like methods to build a
set of updates and a commit method to finalize the transaction. This can
trivially be reduced to the first kind of API so the list based API style
should be considered the primitive and the builder style should be
implemented as syntactic sugar.
transaction should be limited to 1MB.
internals. The changes include:
form, the code should be slightly extended to convert a list of operations
to idempotent form.
be detected gracefully and an informative exception should be thrown.
at https://github.com/tdunning/zookeeper and am happy to extend committer
status to anyone who agrees to donate their code back to Apache. The final
patch will be attached to this bug as normal.
> Need a multi-update command to allow multiple znodes to be updated safely
> -------------------------------------------------------------------------
>
> Key: ZOOKEEPER-965
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-965
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.3.3
> Reporter: Ted Dunning
> Assignee: Ted Dunning
> Fix For: 3.4.0
>
> Attachments: ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch, ZOOKEEPER-965.patch,
> ZOOKEEPER-965.patch, ZOOKEEPER-965.patch
>
>
> The basic idea is to have a single method called "multi" that will accept a
> list of create, delete, update or check objects each of which has a desired
> version or file state in the case of create. If all of the version and
> existence constraints can be satisfied, then all updates will be done
> atomically.
> Two API styles have been suggested. One has a list as above and the other
> style has a "Transaction" that allows builder-like methods to build a set of
> updates and a commit method to finalize the transaction. This can trivially
> be reduced to the first kind of API so the list based API style should be
> considered the primitive and the builder style should be implemented as
> syntactic sugar.
> The total size of all the data in all updates and creates in a single
> transaction should be limited to 1MB.
> Implementation-wise this capability can be done using standard ZK internals.
> The changes include:
> - update to ZK clients to all the new call
> - additional wire level request
> - on the server, in the code that converts transactions to idempotent form,
> the code should be slightly extended to convert a list of operations to
> idempotent form.
> - on the client, a down-rev server that rejects the multi-update should be
> detected gracefully and an informative exception should be thrown.
> To facilitate shared development, I have established a github repository at
> https://github.com/tdunning/zookeeper and am happy to extend committer
> status to anyone who agrees to donate their code back to Apache. The final
> patch will be attached to this bug as normal.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira