zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Reed (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2169) Enable creation of nodes with TTLs
Date Sun, 28 Aug 2016 23:43:20 GMT

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15444326#comment-15444326
] 

Benjamin Reed commented on ZOOKEEPER-2169:
------------------------------------------

i observed that all the container check tests happen with the server running the whole time.
there are no recovery tests. sometimes weird interactions happen there.

the more i think about it the more i realize since this is the first functionality that uses
a notion of a global clock and the first that treats mtime as something more than an informational
hint, there are more conditions to test: 1) what happens if the new server has a clock that
is far behind or ahead? it's clear that if the new server has a clock that is ahead (or the
old server had a clock that was behind) we may violate the TTL, but there may be others. 2)
a similar thing might happen if the time is adjusted on the machine the server is running
on. i imagine there are others to test, this is just off the top of my head, but since this
is a new feature we can learn as people use it.

i'm fine letting it go in as is.

> Enable creation of nodes with TTLs
> ----------------------------------
>
>                 Key: ZOOKEEPER-2169
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2169
>             Project: ZooKeeper
>          Issue Type: New Feature
>          Components: c client, java client, jute, server
>    Affects Versions: 3.6.0
>            Reporter: Camille Fournier
>            Assignee: Jordan Zimmerman
>             Fix For: 3.6.0
>
>         Attachments: ZOOKEEPER-2169-2.patch, ZOOKEEPER-2169-3.patch, ZOOKEEPER-2169-4.patch,
ZOOKEEPER-2169-5.patch, ZOOKEEPER-2169.patch
>
>
> As a user, I would like to be able to create a node that is NOT tied to a session but
that WILL expire automatically if action is not taken by some client within a time window.
> I propose this to enable clients interacting with ZK via http or other "thin clients"
to create ephemeral-like nodes.
> Some ideas for the design, up for discussion:
> The node should support all normal ZK node operations including ACLs, sequential key
generation, etc, however, it should not support the ephemeral flag. The node will be created
with a TTL that is updated via a refresh operation. 
> The ZK quorum will watch this node similarly to the way that it watches for session liveness;
if the node is not refreshed within the TTL, it will expire.
> QUESTIONS:
> 1) Should we let the refresh operation set the TTL to a different base value?
> 2) If so, should the setting of the TTL to a new base value cause a watch to fire?
> 3) Do we want to allow these nodes to have children or prevent this similar to ephemeral
nodes?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message