Hello everyone,

I hope this message finds you well.

I am reaching out to highlight some critical issues I've encountered with Solr 
coordinators in version 9.7 and above. These issues appear to be more complex 
than I can address alone, and I believe they warrant a broader discussion.

Key Issues:
Broken Reload Functionality:
The reload function for Solr coordinators is currently completely broken. This 
issue prevents updates to the core's configuration, requiring manual deletion 
and addition of cores, which might result in significant downtime for some 
users. The problem manifests in two ways:

Reload Functionality at the Synthetic Core Level: This feature is broken, 
rendering it impossible to reload cores effectively.
currently, any reload request sent to the core level will result in ERROR 500. 
for example, I run this locally on a cloud with 2 data nodes and one 
coordinator.
http://localhost:8983/solr/admin/cores?core=.sys.COORDINATOR-COLL-_default_core&action=reload
and it failed returning:
{
"responseHeader":{
"status":500,
"QTime":792
},
"error":{
"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","org.apache.solr.common.SolrException"],
"msg":"Unable to reload core [.sys.COORDINATOR-COLL-_default_core]",
"trace":"org.apache.solr.common.SolrException: Unable to reload core 
[.sys.COORDINATOR-COLL-_default_core]\r\n\tat 
org.apache.solr.core.CoreContainer.reload(CoreContainer.java:2101)\r\n\tat
...
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)\r\n\tat
 java.base/java.lang.Thread.run(Thread.java:840)\r\nCaused by: 
org.apache.solr.common.SolrException: Failed to load config name for 
collection:.sys.COORDINATOR-COLL-_default_core due to: \r\n\tat 
org.apache.solr.core.SolrCore.<init>(SolrCore.java:1225)\r\n\tat 
org.apache.solr.core.SolrCore.reload(SolrCore.java:787)\r\n\tat 
org.apache.solr.core.CoreContainer.reload(CoreContainer.java:2053)\r\n\t... 59 
more\r\nCaused by: org.apache.solr.common.SolrException: Failed to load config 
name for collection:.sys.COORDINATOR-COLL-_default_core due to: \r\n\tat 
org.apache.solr.rest.ManagedResourceStorage.newStorageIO(ManagedResourceStorage.java:104)\r\n\tat
 org.apache.solr.core.SolrCore.initRestManager(SolrCore.java:3230)\r\n\tat 
org.apache.solr.core.SolrCore.<init>(SolrCore.java:1176)\r\n\t... 61 
more\r\nCaused by: org.apache.solr.common.SolrException: Could not find 
collection : .sys.COORDINATOR-COLL-_default_core\r\n\tat 
org.apache.solr.common.cloud.ClusterState.getCollection(ClusterState.java:125)\r\n\tat
 
org.apache.solr.rest.ManagedResourceStorage.newStorageIO(ManagedResourceStorage.java:101)\r\n\t...
 63 more\r\n",
"code":500
}
}
more details can be found on jira 
https://issues.apache.org/jira/browse/SOLR-17386

No Bulk Update Capability: There is no mechanism to update all cores with a 
single request, complicating management and updates.
Limited Request Handler Support:
Coordinators currently only support the /select request handler. This 
limitation prevents users from implementing or benefiting from other request 
handlers, significantly restricting functionality.

more details can be found on jira 
https://issues.apache.org/jira/browse/SOLR-17387

Proposed Solutions:
Fix the Reload Functionality:
Addressing the reload functionality is crucial and likely the most complex 
aspect of this issue. I believe this is a blocker and would appreciate guidance 
or assistance from the community on how to proceed with this fix.

Implement Bulk Management API:
Introducing an API to manage coordinators as a group would greatly enhance 
usability. The proposed API endpoints could include:

solr/admin/coordinator?action=createcores&configset=config&nodes=nodes: Creates 
cores with the specified config set on all coordinators listed in Zookeeper 
under /roles or a specified list.

solr/admin/coordinator?action=reloadcores&configset=config&nodes=nodes: Reloads 
cores with the specified config set on all coordinators listed in Zookeeper 
under /roles or a specified list.

solr/admin/coordinator?action=deletecores&configset=config&nodes=nodes: Deletes 
cores with the specified config set from all coordinators listed in Zookeeper 
under /roles or a specified list.

Enhance Request Handler Support:
I propose allowing users to specify which request handlers coordinators should 
support via solrconfig. This would enable support for custom request handlers 
without impacting existing functionality. I sent a mail about it to the user 
mailing list a while ago and didn't recive a response, so i decided to give it 
a go myself. I am currently working on a pull request for this feature and hope 
it will address the need effectively.

more details can be found on jira 
https://issues.apache.org/jira/browse/SOLR-17388, or in the relevant mail 
https://lists.apache.org/thread/9bg23vx96k8t5jhhcgzrv4lxd9gbzo10

Summary
The most pressing issue is the non-functional reload feature, which severely 
hampers core management and configuration updates. I would greatly appreciate 
any input or assistance on how to resolve this issue.

Thank you for your attention to these matters. I look forward to your feedback 
and suggestions.

Best regards,Ella

Reply via email to