Github user paul-rogers commented on the issue:

    https://github.com/apache/drill/pull/928
  
    Responses to the general comments:
    
    > I think we need to limit the number of queries waiting for queues.
    
    Please see the detailed notes. The ZK-based mechanism does not (AFAIK) 
provide the means to limit queue size. This is why this feature is preliminary, 
and may be why it has been disabled, though it has been available in the code 
for several years.
    
    > For short queries, this feature might add more overhead/latency (going to 
zookeeper, extra synchronization mechanisms added etc.). This will be a problem 
with high concurrency. Did we quantify that ?
    
    This is not a feature for situations of very high concurrency (= very small 
queries). It is a feature for situations in which a cluster runs enough 
distributed queries that the cluster becomes overloaded. For the case with 
1000s of small, single-node queries, a app could use the framework provided to 
implement an in-process queue. In fact, one exists, but it is intended for unit 
tests.
    
    > Not being to cancel once enqueued is also a problem. Can we do that by 
having cancel release the semaphore ?
    
    Yes, cancelation is an issue. Since the ZK-based queues were an existing 
feature, I didn't dive too deeply into how they handle query cancellation. This 
would be a good area for QA to exercise. 
    
    > Also, does semaphore count give an indication how many are waiting in the 
queue ?
    
    There is no ready means to determine this, though I suspect that something 
could be put together that queries the internal znode and counts the ephemeral 
nodes that represent waiting processes. Doing so would be handy to display 
queue size in the Drill web UI. This would be a good enhancement once we prove 
that the basic mechanism works.


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

Reply via email to