[
https://issues.apache.org/jira/browse/ZOOKEEPER-723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13051160#comment-13051160
]
Benjamin Reed commented on ZOOKEEPER-723:
-----------------------------------------
i'm afraid the semantics have gotten very complicated just to avoid creating a
first child. there are now a couple of reasons for the existence or deletion of
a parent:
* if a session is alive and never had children -> exists
* if a session is alive and doesn't have children, but did at one time ->
deleted
* if a session is alive and has children -> exists
* if a session is dead and has children -> exists
* if a session is dead and never had children -> deleted
... there are more of course ...
i'm just wondering if we are going to get a bunch of false bug reports with
these semantics, and given the number of corner cases it will be hard to verify
the bugs.
it is nice to have simple semantics:
* if has children -> exists
* if it doesn't have children -> deleted
> ephemeral parent znodes
> -----------------------
>
> Key: ZOOKEEPER-723
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-723
> Project: ZooKeeper
> Issue Type: New Feature
> Components: server
> Reporter: Benjamin Reed
> Assignee: Daniel Gómez Ferro
> Attachments: ZOOKEEPER-723.patch, ZOOKEEPER-723.patch
>
>
> ephemeral znodes have the nice property of automatically cleaning up after
> themselves when the creator goes away, but since they can't have children it
> is hard to build subtrees that will cleanup after the clients that are using
> them are gone.
> rather than changing the semantics of ephemeral nodes, i propose ephemeral
> parents: znodes that disappear when they have no more children. this cleanup
> would happen automatically when the last child is removed. an ephemeral
> parent is not tied to any particular session, so even if the creator goes
> away, the ephemeral parent will remain as long as there are children.
> the when an ephemeral parent is created it will have an initial child, so
> that it doesn't get immediately removed. i think this child should be an
> ephemeral znode with a predefined name, "firstChild".
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira