[ https://issues.apache.org/jira/browse/SOLR-5474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13831910#comment-13831910 ]
Timothy Potter commented on SOLR-5474: -------------------------------------- I like the strategy of using a LazyCloudSolrServer as that keeps this "lazy" mode de-coupled from the current implementation, giving Solr users the choice based on their environment. However, while planning an implementation strategy for this, I discovered that some of the core cloud classes in the org.apache.solr.common.cloud package, such as CloudSolrServer and ZkStateReader, are closed for extension because all of the member variables one would need access to are marked private. It seems reasonable that one would want to extend these classes, if for some other reason than this ticket alone. Curious on whether I can plan to mark the members of the core classes protected instead of private or should an implementation of this ticket leave all existing cloud code un-touched even if that leads to copy-and-paste reuse in some cases? Immediately, I can see needing to change some access modifiers for CloudSolrServer, ZkStateReader, and ClusterState. > Have a new mode for SolrJ to not watch any ZKNode > ------------------------------------------------- > > Key: SOLR-5474 > URL: https://issues.apache.org/jira/browse/SOLR-5474 > Project: Solr > Issue Type: Sub-task > Components: SolrCloud > Reporter: Noble Paul > > In this mode SolrJ would not watch any ZK node > It fetches the state on demand and cache the most recently used n > collections in memory. > SolrJ would not listen to any ZK node. When a request comes for a collection > ‘xcoll’ > it would first check if such a collection exists > If yes it first looks up the details in the local cache for that collection > If not found in cache , it fetches the node /collections/xcoll/state.json and > caches the information > Any query/update will be sent with extra query param specifying the > collection name , shard name, Role (Leader/Replica), and range (example > \_target_=xcoll:shard1:L:80000000-b332ffff) . A node would throw an error > (INVALID_NODE) if it does not the serve the collection/shard/Role/range combo. > If SolrJ gets INVALID_NODE error it would invalidate the cache and fetch > fresh state information for that collection (and caches it again) > If there is a connection timeout, SolrJ assumes the node is down and re-fetch > the state for the collection and try again -- This message was sent by Atlassian JIRA (v6.1#6144) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org