Uploaded image for project: 'Apache Curator'
  1. Apache Curator
  2. CURATOR-443

Sleep too long when connection to zookeeper has not been established yet after construction

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.0.0
    • Fix Version/s: 4.0.1
    • Component/s: Framework
    • Labels:
      None

      Description

      Recently we purge the complicated RecoverableZooKeeper dependency in hbase-client and use curator to get data from zookeeper.

      But when debugging HBASE-19266, we found that if we get data immediately after the creation of CuratorFramework, the request will always cost 100x ms to complete.

      After digging, we found that there is a sleep in CuratorFrameworkImpl if the connection is not established yet

      https://github.com/apache/curator/blob/6d36a4793b31cdacaf4bbf6554e05d68bc680001/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java#L943

      This is really a bad news for us. We decide to make the async hbase client fully asynchronous. You can see this example, where we execute the request to hbase directly in the netty event loop thread.

      https://github.com/apache/hbase/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java

      So if there is a sleep in foreground then the event loop will be stuck for 1 second which will cause very bad performance impact...

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              randgalt Jordan Zimmerman
              Reporter:
              zhangduo Duo Zhang

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment