You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by paul-rogers <gi...@git.apache.org> on 2017/01/05 22:15:13 UTC

[GitHub] drill issue #701: DRILL-4963: Sync remote and local function registries befo...

Github user paul-rogers commented on the issue:

    https://github.com/apache/drill/pull/701
  
    General comment. Wasn't the design supposed to be that the lazy lookup would check for the function both in planning ("Calcite") and execution times? The whole point of the lazy init was to avoid per-query syncs (which will be prohibitively expensive for short queries) and to avoid race conditions.
    
    I wonder, is the problem the *way* in which we are checking for functions? The issue in this particular JIRA is a function with the same name as an existing function, but with different signature. Did the original lazy init check only names? Could a fix be to check name & signature?
    
    In general, the question is, can lazy init be preserved, but enhanced to handle the case described in the bug? It seems a shame to move away from it after all the effort that went into getting it (almost) right...
    
    If we switch to relying on syncing, we've got to rethink all the race conditions that were meant to be resolved with lazy init. Seems we'd have to update the design doc. to match. I'd really like to see if we can provide a fix that preserves the lazy init design so we keep the performance & concurrency benefits that it provides.


---
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.
---