drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paul-rogers <...@git.apache.org>
Subject [GitHub] drill pull request #574: DRILL-4726: Dynamic UDFs support
Date Wed, 07 Sep 2016 22:34:58 GMT
Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/574#discussion_r77917007
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/coord/zk/ZookeeperClient.java
---
    @@ -179,6 +220,22 @@ public void create(final String path) {
        * @param data  data to store
        */
       public void put(final String path, final byte[] data) {
    +    put(path, data, null);
    +  }
    +
    +  /**
    +   * Puts the given byte sequence into the given path.
    +   *
    +   * If path does not exists, this call creates it.
    +   *
    +   * If version holder is not null, passes given version for comparison.
    +   * Throws {@link VersionMismatchException} if versions mismatch was detected.
    --- End diff --
    
    Perhaps explain this a bit more. One way to do this is to point to the ZooKeeper docs:
https://zookeeper.apache.org/doc/r3.2.2/zookeeperProgrammers.html#sc_zkDataModel_znodes
    
    Explain how we use the version number to ensure we write only the version we read.
    
    Then, when using this in the UDF registration stuff, explain how we use that model to
ensure consistency. I didn't see a try/fail/retry loop when registering udfs, but perhaps
I missed it. Using this ZK mechanism, seems we would read & write until we get a conflict-free
write. On each read, we'd recheck that our new udf is still unique. Is this what we do?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message