Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/574#discussion_r77974471
--- 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 --
Sure, I'll add a little bit more of explanation.
Regarding UDF registration / unregistration we have
CreateFunctionHandler.register has try / catch clause with method recursive
call, the same in DropFunctionHandler.unregister to ensure we write back
version we have. If version has changed we re-validate UDFs against updated
registry and try to update remote registry one more time till retry times
quantity haven't been exceeded.
---
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 [email protected] or file a JIRA ticket
with INFRA.
---