Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-834

Allow ephemeral znodes to have children created only by the owner session.

    XMLWordPrintableJSON

Details

    Description

      Ephemeral znodes are automatically removed when the client session is closed or expires and this behavior makes them very useful when you want to publish status information from active / connected clients.

      But there is a catch. Right now ephemerals can't have children znodes and because of that clients need to serialize status information as byte strings. This serialization renders that information almost invisible to generic zookeeper clients and hard / inefficient to update.

      Most of the time the status information can be expressed as a bunch of (key, value) pairs and we could easily store that using child znodes. Any ZooKeeper client can read that info without the need to reverse the serialization process and we can also easily update it.

      I suggest that the server should allow the ephemeral znodes to have children znodes. Each child should also be an ephemeral znode owned by the same session - parent ephemeralOwner session.

      Mail Archive:
      http://www.mail-archive.com/zookeeper-dev@hadoop.apache.org/msg09819.html

      Another discussion about the same topic:
      http://www.mail-archive.com/zookeeper-dev@hadoop.apache.org/msg08165.html

      Attachments

        1. ZOOKEEPER-834.patch
          16 kB
          Laxman
        2. ZOOKEEPER-834.1.patch
          16 kB
          Laxman
        3. ZOOKEEPER-834.2.patch
          22 kB
          Laxman
        4. ZOOKEEPER-834.patch
          35 kB
          Rakesh Radhakrishnan

        Issue Links

          Activity

            People

              rakeshr Rakesh Radhakrishnan
              savu.andrei Andrei Savu
              Votes:
              3 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: