Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: master, tserver
    • Labels:
      None

      Description

      Curator seems to have distilled a lot of zookeeper lesson's learned. Consider using it as our interface to zookeeper.

      Curator advantages:

      • handles zookeeper retries, via configurable policies
      • works around some very strange failure scenarios
      • simplified API
      • unlike ZooCache and ZooLock, Curator does not need to be maintained by Accumulo developers

        Issue Links

          Activity

          Hide
          vines John Vines added a comment -

          yes

          Show
          vines John Vines added a comment - yes
          Hide
          busbey Sean Busbey added a comment -

          FYI, HBase has started brainstorming moving off of ZK in HBASE-10296, but in a different direction than Curator.

          Show
          busbey Sean Busbey added a comment - FYI, HBase has started brainstorming moving off of ZK in HBASE-10296 , but in a different direction than Curator.
          Hide
          busbey Sean Busbey added a comment -

          John Vines, was your final version of this WIP the ACCUMULO-CURATOR branch? Just want to make sure it's tracked somewhere for whenever this gets looked at again.

          Show
          busbey Sean Busbey added a comment - John Vines , was your final version of this WIP the ACCUMULO-CURATOR branch ? Just want to make sure it's tracked somewhere for whenever this gets looked at again.
          Hide
          medined David Medinets added a comment -

          +1 for your re-evaluation.

          Show
          medined David Medinets added a comment - +1 for your re-evaluation.
          Hide
          vines John Vines added a comment -

          I'm thinking about scrapping the work I've done on this. Besides it being a bit antiquated, it really hasn't simplified the code much. The exception handling in Curator isn't that great yet and leaves me wanting. The recipes are nice, but the locks do not behave in a way that are interchangeable with what we're doing. I may contribute some to the project to bring features into it that would benefit us, but for now I'm skeptical about the gains from switching to Curator.

          I was initially hoping with all of this we could abolish the ZooReader, ZooReaderWriter, and ZooCache, but ultimately they turned into management interfaces for Curator that, while less complex then the straight Zookeeper, were marginally less code. I was hoping for a big chunk of code being offloaded, but I wasn't quite seeing it. Unless anyone had another strong reason for this migration, I'm thinking we may want to push off for Curator to become a bit more fitting for our purposes.

          Show
          vines John Vines added a comment - I'm thinking about scrapping the work I've done on this. Besides it being a bit antiquated, it really hasn't simplified the code much. The exception handling in Curator isn't that great yet and leaves me wanting. The recipes are nice, but the locks do not behave in a way that are interchangeable with what we're doing. I may contribute some to the project to bring features into it that would benefit us, but for now I'm skeptical about the gains from switching to Curator. I was initially hoping with all of this we could abolish the ZooReader, ZooReaderWriter, and ZooCache, but ultimately they turned into management interfaces for Curator that, while less complex then the straight Zookeeper, were marginally less code. I was hoping for a big chunk of code being offloaded, but I wasn't quite seeing it. Unless anyone had another strong reason for this migration, I'm thinking we may want to push off for Curator to become a bit more fitting for our purposes.
          Hide
          ecn Eric Newton added a comment -

          Verify that move to curator fixes ACCUMULO-1572

          Show
          ecn Eric Newton added a comment - Verify that move to curator fixes ACCUMULO-1572
          Hide
          vines John Vines added a comment -

          8. migrate a lot of the tablet gets into using the cache. There is an additional option down the road we can do which is using zookeeper to handle some of these tablet events without the master having to message the tablet to do it. If we trust zookeeper. But that's just food for thought.

          Show
          vines John Vines added a comment - 8. migrate a lot of the tablet gets into using the cache. There is an additional option down the road we can do which is using zookeeper to handle some of these tablet events without the master having to message the tablet to do it. If we trust zookeeper. But that's just food for thought.
          Hide
          vines John Vines added a comment -

          Update for those paying attention-

          The current state of the branch is mostly functional. I've done one pass which migrated a lot of the underlying functionality into the existing structures. I'm not 100% what I'm going to do on the next pass, but on the list are-

          1. CuratorFramework reuse - I'm seeing a fair amount of repeats in curator creation that I'd like to reduce
          2. Use curator namespaces - pretty much everything I'm doing is in the scope of the root. At the very least I want to switch it to /accumulo, but I may want to see about giving different item scopes different operational namespaces to keep things simple
          3. Get rid of the various iZooReader/ReaderWriters - that's straightforward
          4. Utilize additional curator recipes to replace a lot of our existing locks & process management - This would further decrease our code commitment to making things work, but I'm not sure if there are existing recipes for the way we currently use zookeeper, service discovery - this is also going to be after the purge of old ZK management code
          5. Make the retry policy more pluggable
          6. Improved use of listeners - There are some places I think that we can utilize more ZK notifications to do things harder, better, faster, stronger.
          7. And there are probably other things I will stumble across as I do other things.

          FYI- net code change lines: -208

          Show
          vines John Vines added a comment - Update for those paying attention- The current state of the branch is mostly functional. I've done one pass which migrated a lot of the underlying functionality into the existing structures. I'm not 100% what I'm going to do on the next pass, but on the list are- CuratorFramework reuse - I'm seeing a fair amount of repeats in curator creation that I'd like to reduce Use curator namespaces - pretty much everything I'm doing is in the scope of the root. At the very least I want to switch it to /accumulo, but I may want to see about giving different item scopes different operational namespaces to keep things simple Get rid of the various iZooReader/ReaderWriters - that's straightforward Utilize additional curator recipes to replace a lot of our existing locks & process management - This would further decrease our code commitment to making things work, but I'm not sure if there are existing recipes for the way we currently use zookeeper, service discovery - this is also going to be after the purge of old ZK management code Make the retry policy more pluggable Improved use of listeners - There are some places I think that we can utilize more ZK notifications to do things harder, better, faster, stronger. And there are probably other things I will stumble across as I do other things. FYI- net code change lines: -208
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 1492844 from John Vines
          [ https://svn.apache.org/r1492844 ]

          ACCUMULO-715 Migrated ZKInstance to curator

          Show
          jira-bot ASF subversion and git services added a comment - Commit 1492844 from John Vines [ https://svn.apache.org/r1492844 ] ACCUMULO-715 Migrated ZKInstance to curator
          Hide
          vines John Vines added a comment -

          Eric Newton mind if I take this ticket from you?

          Show
          vines John Vines added a comment - Eric Newton mind if I take this ticket from you?
          Hide
          medined David Medinets added a comment -

          https://github.com/Netflix/curator - Curator is a set of Java libraries that make using Apache ZooKeeper much easier. While ZooKeeper comes bundled with a Java client, using the client is non-trivial and error prone.

          Show
          medined David Medinets added a comment - https://github.com/Netflix/curator - Curator is a set of Java libraries that make using Apache ZooKeeper much easier. While ZooKeeper comes bundled with a Java client, using the client is non-trivial and error prone.

            People

            • Assignee:
              vines John Vines
              Reporter:
              ecn Eric Newton
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:

                Development