[ 
https://issues.apache.org/jira/browse/SOLR-8323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan Woodward updated SOLR-8323:
--------------------------------
    Attachment: SOLR-8323.patch

Wow, thanks for the very thorough review Scott!  Here's an updated patch.

bq. Could collectionWatches and interestingCollections be unified into a single 
thing?

Unfortunately not, as it's needed to detect collections which have migrated 
from state format 1 to state format 2.  There's almost certainly a nicer way of 
doing that, though - maybe in a follow-up issue?

bq. make the static type of collectionWatchers be ConcurrentMap?

I disagree here - we don't use any of the concurrent methods, so I think just 
using Map is fine?

bq. unregisterCore needs a better guard against under-referencing

Added.  I don't think throwing an exception is necessary, although maybe we 
should log a warning in this case?

bq. newState is always null

changed

bq. No need to early exit here

changed

bq. In notifyStateWatchers you can avoid some copies...

I think this ends up as a wash, given that you may end up creating multiple 
HashSets?  And we're only copying references, after all.

bq. In getStateWatchers() you probably still want to wrap in a compute 
function...

Compute() doesn't help here, I don't think?  And given that it's a test-only 
method, I'm not too concerned about accuracy.  I've made it return a copy 
rather than return the original set, which should stop weird things happening 
to it once it's been returned, though.

bq. fetchCollectionState() expectExists parameter doesn't make sense to me

Again, this is due to state format 1 - a collection state might be in 
clusterstate.json, so the collection-specific state might not exist.  I agree 
about the null watcher though, and have added a check around the exists call 
for that.

bq. registerCore/ unregisterCore should probably retain the previous doc:

Added back

bq. getStateWatchers() could return null vs. empty set

Nice idea, added.

I've also added an explicit test for state format 1 collections, and updated 
the code so that it actually works :)

> Add CollectionWatcher API to ZkStateReader
> ------------------------------------------
>
>                 Key: SOLR-8323
>                 URL: https://issues.apache.org/jira/browse/SOLR-8323
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: master
>            Reporter: Alan Woodward
>            Assignee: Alan Woodward
>         Attachments: SOLR-8323.patch, SOLR-8323.patch, SOLR-8323.patch, 
> SOLR-8323.patch
>
>
> An API to watch for changes to collection state would be a generally useful 
> thing, both internally and for client use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to