[ 
https://issues.apache.org/jira/browse/SOLR-11443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16204001#comment-16204001
 ] 

Scott Blum commented on SOLR-11443:
-----------------------------------

SOLR-11447 looks interesting, might well address that comment.

{code}
    int cacheSizeBefore = knownChildren.size();
    knownChildren.removeAll(paths);
    if (cacheSizeBefore - paths.size() == knownChildren.size()) {
      stats.setQueueLength(knownChildren.size());
    } else {
      // There are elements get deleted but not present in the cache,
      // the cache seems not valid anymore
      knownChildren.clear();
      isDirty = true;
    }
{code}

I just kind of feel like you should unconditionally clear and set dirty, to 
catch any weird edge cases.  What if post removal, knownChildren.size() == 0 in 
the above code?  Having knownChildren empty and !isDirty seems runs the risk of 
report false queue empty status when in fact we just need to pull more nodes 
from ZK.

> Remove the usage of workqueue for Overseer
> ------------------------------------------
>
>                 Key: SOLR-11443
>                 URL: https://issues.apache.org/jira/browse/SOLR-11443
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Cao Manh Dat
>            Assignee: Cao Manh Dat
>         Attachments: SOLR-11443.patch, SOLR-11443.patch, SOLR-11443.patch
>
>
> If we can remove the usage of workqueue, We can save a lot of IO blocking in 
> Overseer, hence boost performance a lot.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to