[jira] [Commented] (SOLR-14354) HttpShardHandler send requests in async

2020-07-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on SOLR-14354:


Commit 21d811d29615ac47bc51e12a4f9f216af8463c3f in lucene-solr's branch 
refs/heads/branch_8x from Cao Manh Dat
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=21d811d ]

SOLR-14354: Fix compile errors after cherry-pick


> HttpShardHandler send requests in async
> ---
>
> Key: SOLR-14354
> URL: https://issues.apache.org/jira/browse/SOLR-14354
> Project: Solr
>  Issue Type: Improvement
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
> Fix For: master (9.0), 8.7
>
> Attachments: image-2020-03-23-10-04-08-399.png, 
> image-2020-03-23-10-09-10-221.png, image-2020-03-23-10-12-00-661.png
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> h2. 1. Current approach (problem) of Solr
> Below is the diagram describe the model on how currently handling a request.
> !image-2020-03-23-10-04-08-399.png!
> The main-thread that handles the search requests, will submit n requests (n 
> equals to number of shards) to an executor. So each request will correspond 
> to a thread, after sending a request that thread basically do nothing just 
> waiting for response from other side. That thread will be swapped out and CPU 
> will try to handle another thread (this is called context switch, CPU will 
> save the context of the current thread and switch to another one). When some 
> data (not all) come back, that thread will be called to parsing these data, 
> then it will wait until more data come back. So there will be lots of context 
> switching in CPU. That is quite inefficient on using threads.Basically we 
> want less threads and most of them must busy all the time, because threads 
> are not free as well as context switching. That is the main idea behind 
> everything, like executor
> h2. 2. Async call of Jetty HttpClient
> Jetty HttpClient offers async API like this.
> {code:java}
> httpClient.newRequest("http://domain.com/path;)
> // Add request hooks
> .onRequestQueued(request -> { ... })
> .onRequestBegin(request -> { ... })
> // Add response hooks
> .onResponseBegin(response -> { ... })
> .onResponseHeaders(response -> { ... })
> .onResponseContent((response, buffer) -> { ... })
> .send(result -> { ... }); {code}
> Therefore after calling {{send()}} the thread will return immediately without 
> any block. Then when the client received the header from other side, it will 
> call {{onHeaders()}} listeners. When the client received some {{byte[]}} (not 
> all response) from the data it will call {{onContent(buffer)}} listeners. 
> When everything finished it will call {{onComplete}} listeners. One main 
> thing that will must notice here is all listeners should finish quick, if the 
> listener block, all further data of that request won’t be handled until the 
> listener finish.
> h2. 3. Solution 1: Sending requests async but spin one thread per response
>  Jetty HttpClient already provides several listeners, one of them is 
> InputStreamResponseListener. This is how it is get used
> {code:java}
> InputStreamResponseListener listener = new InputStreamResponseListener();
> client.newRequest(...).send(listener);
> // Wait for the response headers to arrive
> Response response = listener.get(5, TimeUnit.SECONDS);
> if (response.getStatus() == 200) {
>   // Obtain the input stream on the response content
>   try (InputStream input = listener.getInputStream()) {
> // Read the response content
>   }
> } {code}
> In this case, there will be 2 thread
>  * one thread trying to read the response content from InputStream
>  * one thread (this is a short-live task) feeding content to above 
> InputStream whenever some byte[] is available. Note that if this thread 
> unable to feed data into InputStream, this thread will wait.
> By using this one, the model of HttpShardHandler can be written into 
> something like this
> {code:java}
> handler.sendReq(req, (is) -> {
>   executor.submit(() ->
> try (is) {
>   // Read the content from InputStream
> }
>   )
> }) {code}
>  The first diagram will be changed into this
> !image-2020-03-23-10-09-10-221.png!
> Notice that although “sending req to shard1” is wide, it won’t take long time 
> since sending req is a very quick operation. With this operation, handling 
> threads won’t be spin up until first bytes are sent back. Notice that in this 
> approach we still have active threads waiting for more data from InputStream
> h2. 4. Solution 2: Buffering data and handle it inside jetty’s thread.
> Jetty have another listener called BufferingResponseListener. This is how it 
> 

[jira] [Updated] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller updated SOLR-14636:
--
Description: 
SolrCloud powers critical infrastructure and needs the ability to run quickly 
with stability. This reference implementation will allow for this.

*location*: [https://github.com/apache/lucene-solr/tree/reference_impl]

*status*: alpha

*speed*: ludicrous

*tests***:
 * *core*: passing with ignores (not solid*)
 * *solrj*: passing with ignores (not solid*)
 * *test-framework*:  passing with ignores (not solid*)
 * *contrib/analysis-extras*:  passing with ignores (not solid*)
 * *contrib/analytics*:  passing with ignores (not solid*)
 * *contrib/clustering*:  passing with ignores (not solid*)
 * *contrib/dataimporthandler*:  passing with ignores (not solid*)
 * *contrib/dataimporthandler-extras*:  passing with ignores (not solid*)
 * *contrib/extraction*:  passing with ignores (not solid*)
 * *contrib/jaegertracer-configurator*:  passing with ignores (not solid*)
 * *contrib/langid*:  passing with ignores (not solid*)
 * *contrib/prometheus-exporter*:  passing with ignores (not solid*)
 * *contrib/velocity*:  passing with ignores (not solid*)

_* Running tests quickly and efficiently with strict policing will more 
frequently find bugs and requires a period of hardening._
 _** Non Nightly currently, Nightly comes last._

  was:
SolrCloud powers critical infrastructure and needs the ability to run quickly 
with stability. This reference implementation will allow for this.

*location*: [https://github.com/apache/lucene-solr/tree/reference_impl]

*status*: alpha

*speed*: ludicrous

*tests***:
 * *core*: passing with ignores (not solid*)
 * *solrj*: tbd
 * *test-framework*: tbd
 * *contrib/analysis-extras*: tbd
 * *contrib/analytics*: tbd
 * *contrib/clustering*: tbd
 * *contrib/dataimporthandler*: tbd
 * *contrib/dataimporthandler-extras*: tbd
 * *contrib/extraction*: tbd
 * *contrib/jaegertracer-configurator*: tbd
 * *contrib/langid*: tbd
 * *contrib/prometheus-exporter*: tbd
 * *contrib/velocity*: tbd

_* Running tests quickly and efficiently with strict policing will more 
frequently find bugs and requires a period of hardening._
 _** Non Nightly currently, Nightly comes last._


> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: passing with ignores (not solid*)
>  * *test-framework*:  passing with ignores (not solid*)
>  * *contrib/analysis-extras*:  passing with ignores (not solid*)
>  * *contrib/analytics*:  passing with ignores (not solid*)
>  * *contrib/clustering*:  passing with ignores (not solid*)
>  * *contrib/dataimporthandler*:  passing with ignores (not solid*)
>  * *contrib/dataimporthandler-extras*:  passing with ignores (not solid*)
>  * *contrib/extraction*:  passing with ignores (not solid*)
>  * *contrib/jaegertracer-configurator*:  passing with ignores (not solid*)
>  * *contrib/langid*:  passing with ignores (not solid*)
>  * *contrib/prometheus-exporter*:  passing with ignores (not solid*)
>  * *contrib/velocity*:  passing with ignores (not solid*)
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14354) HttpShardHandler send requests in async

2020-07-10 Thread Cao Manh Dat (Jira)


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

Cao Manh Dat commented on SOLR-14354:
-

Thank you [~erickerickson], I gonna push a fix for this soon. I should be more 
careful on cherry-pick changes.

> HttpShardHandler send requests in async
> ---
>
> Key: SOLR-14354
> URL: https://issues.apache.org/jira/browse/SOLR-14354
> Project: Solr
>  Issue Type: Improvement
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
> Fix For: master (9.0), 8.7
>
> Attachments: image-2020-03-23-10-04-08-399.png, 
> image-2020-03-23-10-09-10-221.png, image-2020-03-23-10-12-00-661.png
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> h2. 1. Current approach (problem) of Solr
> Below is the diagram describe the model on how currently handling a request.
> !image-2020-03-23-10-04-08-399.png!
> The main-thread that handles the search requests, will submit n requests (n 
> equals to number of shards) to an executor. So each request will correspond 
> to a thread, after sending a request that thread basically do nothing just 
> waiting for response from other side. That thread will be swapped out and CPU 
> will try to handle another thread (this is called context switch, CPU will 
> save the context of the current thread and switch to another one). When some 
> data (not all) come back, that thread will be called to parsing these data, 
> then it will wait until more data come back. So there will be lots of context 
> switching in CPU. That is quite inefficient on using threads.Basically we 
> want less threads and most of them must busy all the time, because threads 
> are not free as well as context switching. That is the main idea behind 
> everything, like executor
> h2. 2. Async call of Jetty HttpClient
> Jetty HttpClient offers async API like this.
> {code:java}
> httpClient.newRequest("http://domain.com/path;)
> // Add request hooks
> .onRequestQueued(request -> { ... })
> .onRequestBegin(request -> { ... })
> // Add response hooks
> .onResponseBegin(response -> { ... })
> .onResponseHeaders(response -> { ... })
> .onResponseContent((response, buffer) -> { ... })
> .send(result -> { ... }); {code}
> Therefore after calling {{send()}} the thread will return immediately without 
> any block. Then when the client received the header from other side, it will 
> call {{onHeaders()}} listeners. When the client received some {{byte[]}} (not 
> all response) from the data it will call {{onContent(buffer)}} listeners. 
> When everything finished it will call {{onComplete}} listeners. One main 
> thing that will must notice here is all listeners should finish quick, if the 
> listener block, all further data of that request won’t be handled until the 
> listener finish.
> h2. 3. Solution 1: Sending requests async but spin one thread per response
>  Jetty HttpClient already provides several listeners, one of them is 
> InputStreamResponseListener. This is how it is get used
> {code:java}
> InputStreamResponseListener listener = new InputStreamResponseListener();
> client.newRequest(...).send(listener);
> // Wait for the response headers to arrive
> Response response = listener.get(5, TimeUnit.SECONDS);
> if (response.getStatus() == 200) {
>   // Obtain the input stream on the response content
>   try (InputStream input = listener.getInputStream()) {
> // Read the response content
>   }
> } {code}
> In this case, there will be 2 thread
>  * one thread trying to read the response content from InputStream
>  * one thread (this is a short-live task) feeding content to above 
> InputStream whenever some byte[] is available. Note that if this thread 
> unable to feed data into InputStream, this thread will wait.
> By using this one, the model of HttpShardHandler can be written into 
> something like this
> {code:java}
> handler.sendReq(req, (is) -> {
>   executor.submit(() ->
> try (is) {
>   // Read the content from InputStream
> }
>   )
> }) {code}
>  The first diagram will be changed into this
> !image-2020-03-23-10-09-10-221.png!
> Notice that although “sending req to shard1” is wide, it won’t take long time 
> since sending req is a very quick operation. With this operation, handling 
> threads won’t be spin up until first bytes are sent back. Notice that in this 
> approach we still have active threads waiting for more data from InputStream
> h2. 4. Solution 2: Buffering data and handle it inside jetty’s thread.
> Jetty have another listener called BufferingResponseListener. This is how it 
> is get used
> {code:java}
> client.newRequest(...).send(new BufferingResponseListener() {
>   public void onComplete(Result result) {
> try {
>   

[jira] [Commented] (SOLR-14354) HttpShardHandler send requests in async

2020-07-10 Thread Erick Erickson (Jira)


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

Erick Erickson commented on SOLR-14354:
---

[~caomanhdat] This is failing 8x compilations on Jenkins with an error message: 
{code}
Build Log:
[...truncated 12441 lines...]
   [javac] Compiling 765 source files to 
C:\Users\jenkins\workspace\Lucene-Solr-8.x-Windows\solr\build\solr-solrj\classes\java
   [javac] 
C:\Users\jenkins\workspace\Lucene-Solr-8.x-Windows\solr\solrj\src\java\org\apache\solr\client\solrj\impl\LBHttp2SolrClient.java:151:
 error: cannot infer type arguments for AsyncListener
   [javac] return 
((Http2SolrClient)getClient(baseUrl)).asyncRequest(req.getRequest(), null, new 
AsyncListener<>() {
   [javac]  
  ^
   [javac]   reason: '<>' with anonymous inner classes is not supported in 
-source 8
   [javac] (use -source 9 or higher to enable '<>' with anonymous inner 
classes)
   [javac]   where T is a type-variable:
   {code}

Not sure how to fix it, this is the awkwardness with trunk and 8x being on 
different Java versions

> HttpShardHandler send requests in async
> ---
>
> Key: SOLR-14354
> URL: https://issues.apache.org/jira/browse/SOLR-14354
> Project: Solr
>  Issue Type: Improvement
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
> Fix For: master (9.0), 8.7
>
> Attachments: image-2020-03-23-10-04-08-399.png, 
> image-2020-03-23-10-09-10-221.png, image-2020-03-23-10-12-00-661.png
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> h2. 1. Current approach (problem) of Solr
> Below is the diagram describe the model on how currently handling a request.
> !image-2020-03-23-10-04-08-399.png!
> The main-thread that handles the search requests, will submit n requests (n 
> equals to number of shards) to an executor. So each request will correspond 
> to a thread, after sending a request that thread basically do nothing just 
> waiting for response from other side. That thread will be swapped out and CPU 
> will try to handle another thread (this is called context switch, CPU will 
> save the context of the current thread and switch to another one). When some 
> data (not all) come back, that thread will be called to parsing these data, 
> then it will wait until more data come back. So there will be lots of context 
> switching in CPU. That is quite inefficient on using threads.Basically we 
> want less threads and most of them must busy all the time, because threads 
> are not free as well as context switching. That is the main idea behind 
> everything, like executor
> h2. 2. Async call of Jetty HttpClient
> Jetty HttpClient offers async API like this.
> {code:java}
> httpClient.newRequest("http://domain.com/path;)
> // Add request hooks
> .onRequestQueued(request -> { ... })
> .onRequestBegin(request -> { ... })
> // Add response hooks
> .onResponseBegin(response -> { ... })
> .onResponseHeaders(response -> { ... })
> .onResponseContent((response, buffer) -> { ... })
> .send(result -> { ... }); {code}
> Therefore after calling {{send()}} the thread will return immediately without 
> any block. Then when the client received the header from other side, it will 
> call {{onHeaders()}} listeners. When the client received some {{byte[]}} (not 
> all response) from the data it will call {{onContent(buffer)}} listeners. 
> When everything finished it will call {{onComplete}} listeners. One main 
> thing that will must notice here is all listeners should finish quick, if the 
> listener block, all further data of that request won’t be handled until the 
> listener finish.
> h2. 3. Solution 1: Sending requests async but spin one thread per response
>  Jetty HttpClient already provides several listeners, one of them is 
> InputStreamResponseListener. This is how it is get used
> {code:java}
> InputStreamResponseListener listener = new InputStreamResponseListener();
> client.newRequest(...).send(listener);
> // Wait for the response headers to arrive
> Response response = listener.get(5, TimeUnit.SECONDS);
> if (response.getStatus() == 200) {
>   // Obtain the input stream on the response content
>   try (InputStream input = listener.getInputStream()) {
> // Read the response content
>   }
> } {code}
> In this case, there will be 2 thread
>  * one thread trying to read the response content from InputStream
>  * one thread (this is a short-live task) feeding content to above 
> InputStream whenever some byte[] is available. Note that if this thread 
> unable to feed data into InputStream, this thread will wait.
> By using this one, the model of HttpShardHandler can 

[jira] [Commented] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller commented on SOLR-14636:
---

Finding old ghosts I had totally forgotten - I knew I hated that currency 
field, but I couldn’t remember of peep of why. Dynamic field concurrency bugs. 
Not a fun one, maybe punt while I’m playing in ez mode. 

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Resolved] (SOLR-14404) CoreContainer level custom requesthandlers

2020-07-10 Thread Noble Paul (Jira)


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

Noble Paul resolved SOLR-14404.
---
Fix Version/s: 8.6
   Resolution: Fixed

> CoreContainer level custom requesthandlers
> --
>
> Key: SOLR-14404
> URL: https://issues.apache.org/jira/browse/SOLR-14404
> Project: Solr
>  Issue Type: New Feature
>  Components: packages
>Reporter: Noble Paul
>Assignee: Noble Paul
>Priority: Major
> Fix For: 8.6
>
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> caveats:
>  * The class should be annotated with  {{org.apache.solr.api.EndPoint}}. 
> Which means only V2 APIs are supported
>  * The path should have prefix {{/api/plugin}}
> add a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin",
>   "class": "full.ClassName", 
>   "path-prefix" : "some-path-prefix"
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> add a plugin from a package
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin", 
>   "class": "pkgName:full.ClassName" ,
>   "path-prefix" : "some-path-prefix"  ,  
>   "version: "1.0"   
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> remove a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "remove": "myplugin"
> }' http://localhost:8983/api/cluster/plugins
> {code}
> The configuration will be stored in the {{clusterprops.json}}
>  as
> {code:java}
> {
> "plugins" : {
> "myplugin" : {"class": "full.ClassName", "path-prefix" : "some-path-prefix" }
> }
> }
> {code}
> example plugin
> {code:java}
> public class MyPlugin {
>   private final CoreContainer coreContainer;
>   public MyPlugin(CoreContainer coreContainer) {
> this.coreContainer = coreContainer;
>   }
>   @EndPoint(path = "/$path-prefix/path1",
> method = METHOD.GET,
> permission = READ)
>   public void call(SolrQueryRequest req, SolrQueryResponse rsp){
> rsp.add("myplugin.version", "2.0");
>   }
> }
> {code}
> This plugin will be accessible on all nodes at 
> {{/api/some-path-prefix/path1}}. It's possible to add more methods at 
> different paths. Ensure that all paths start with {{$path-prefix}} because 
> that is the prefix in which the plugin is registered with. So 
> {{/some-path-prefix/path2}} , {{/some-path-prefix/my/deeply/nested/path}} are 
> all valid paths. 
> It's possible that the user chooses to register the plugin with a different 
> name. In that case , use a template variable as follows in paths 
> {{/cluster/some/other/path}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14404) CoreContainer level custom requesthandlers

2020-07-10 Thread Noble Paul (Jira)


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

Noble Paul updated SOLR-14404:
--
Component/s: packages

> CoreContainer level custom requesthandlers
> --
>
> Key: SOLR-14404
> URL: https://issues.apache.org/jira/browse/SOLR-14404
> Project: Solr
>  Issue Type: New Feature
>  Components: packages
>Reporter: Noble Paul
>Assignee: Noble Paul
>Priority: Major
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> caveats:
>  * The class should be annotated with  {{org.apache.solr.api.EndPoint}}. 
> Which means only V2 APIs are supported
>  * The path should have prefix {{/api/plugin}}
> add a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin",
>   "class": "full.ClassName", 
>   "path-prefix" : "some-path-prefix"
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> add a plugin from a package
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin", 
>   "class": "pkgName:full.ClassName" ,
>   "path-prefix" : "some-path-prefix"  ,  
>   "version: "1.0"   
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> remove a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "remove": "myplugin"
> }' http://localhost:8983/api/cluster/plugins
> {code}
> The configuration will be stored in the {{clusterprops.json}}
>  as
> {code:java}
> {
> "plugins" : {
> "myplugin" : {"class": "full.ClassName", "path-prefix" : "some-path-prefix" }
> }
> }
> {code}
> example plugin
> {code:java}
> public class MyPlugin {
>   private final CoreContainer coreContainer;
>   public MyPlugin(CoreContainer coreContainer) {
> this.coreContainer = coreContainer;
>   }
>   @EndPoint(path = "/$path-prefix/path1",
> method = METHOD.GET,
> permission = READ)
>   public void call(SolrQueryRequest req, SolrQueryResponse rsp){
> rsp.add("myplugin.version", "2.0");
>   }
> }
> {code}
> This plugin will be accessible on all nodes at 
> {{/api/some-path-prefix/path1}}. It's possible to add more methods at 
> different paths. Ensure that all paths start with {{$path-prefix}} because 
> that is the prefix in which the plugin is registered with. So 
> {{/some-path-prefix/path2}} , {{/some-path-prefix/my/deeply/nested/path}} are 
> all valid paths. 
> It's possible that the user chooses to register the plugin with a different 
> name. In that case , use a template variable as follows in paths 
> {{/cluster/some/other/path}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-13101) Shared storage support in SolrCloud

2020-07-10 Thread Noble Paul (Jira)


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

Noble Paul commented on SOLR-13101:
---

[~andy_vuong]Vuong is it anything that stops us from making this a plugin 
available through Solr's package system?

Making it as a package helps many more users to use it and make the feedback 
loop faster

> Shared storage support in SolrCloud
> ---
>
> Key: SOLR-13101
> URL: https://issues.apache.org/jira/browse/SOLR-13101
> Project: Solr
>  Issue Type: New Feature
>  Components: SolrCloud
>Reporter: Yonik Seeley
>Priority: Major
>  Time Spent: 15h 50m
>  Remaining Estimate: 0h
>
> Solr should have first-class support for shared storage (blob/object stores 
> like S3, google cloud storage, etc. and shared filesystems like HDFS, NFS, 
> etc).
> The key component will likely be a new replica type for shared storage.  It 
> would have many of the benefits of the current "pull" replicas (not indexing 
> on all replicas, all shards identical with no shards getting out-of-sync, 
> etc), but would have additional benefits:
>  - Any shard could become leader (the blob store always has the index)
>  - Better elasticity scaling down
>- durability not linked to number of replcias.. a single replica could be 
> common for write workloads
>- could drop to 0 replicas for a shard when not needed (blob store always 
> has index)
>  - Allow for higher performance write workloads by skipping the transaction 
> log
>- don't pay for what you don't need
>- a commit will be necessary to flush to stable storage (blob store)
>  - A lot of the complexity and failure modes go away
> An additional component a Directory implementation that will work well with 
> blob stores.  We probably want one that treats local disk as a cache since 
> the latency to remote storage is so large.  I think there are still some 
> "locking" issues to be solved here (ensuring that more than one writer to the 
> same index won't corrupt it).  This should probably be pulled out into a 
> different JIRA issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller commented on SOLR-14636:
---

I feel like Marcus Lemonis, "you just follow the process."

 Zoom, zoom, zoom, and we can simply grind the gremlins right out of this.

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Comment Edited] (SOLR-13205) StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery

2020-07-10 Thread Pramod Kumar (Jira)


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

Pramod Kumar edited comment on SOLR-13205 at 7/10/20, 9:00 PM:
---

Hey Jason,

The change in init that checks the default field for emptiness is partly 
related. That check will ensure that a useless default field is not passed in, 
and we can error out early.

The parser checks I ended up doing since I was touching that method anyway.

Regarding CHANGES.txt, my alias (pramodkumar9) please!

Thanks for taking a peek Jason.

Pramod


was (Author: pramodkum...@yahoo.com):
Hey Jason,

The change in init that checks the default field for emptiness is partly 
related. That check will ensure that a useless default field is not passed in, 
and we can error out early.

The parser checks I ended up doing since I was touching that method anyway.

Regarding CHANGES.txt, my alias (pramodkumar9) please!

Thanks for taking a peek Jason.

Pramod

 

Not sure 

> StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery
> 
>
> Key: SOLR-13205
> URL: https://issues.apache.org/jira/browse/SOLR-13205
> Project: Solr
>  Issue Type: Bug
>  Components: search
>Affects Versions: master (9.0)
> Environment: h1. Steps to reproduce
> * Use a Linux machine.
> * Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s 
> /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection and reproducing the bug
> We followed [Exercise 
> 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from 
> the [Solr 
> Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html].
> {noformat}
> mkdir -p /tmp/home
> echo '' > 
> /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no 
> replication, and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": 
> {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' 
> http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary 
> '{"add-copy-field" : {"source":"*","dest":"_text_"}}' 
> http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> curl -v “URL_BUG”
> {noformat}
> Please check the issue description below to find the “URL_BUG” that will 
> allow you to reproduce the issue reported.
>Reporter: Johannes Kloos
>Assignee: Jason Gerlowski
>Priority: Minor
>  Labels: diffblue, newdev
> Attachments: SOLR-13205.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?df==debug=all=on
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: 0
> at java.lang.String.charAt(String.java:658)
> at 
> org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:1045)
> at 
> org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:801)
> at org.apache.solr.parser.QueryParser.Term(QueryParser.java:421)
> at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:278)
> at org.apache.solr.parser.QueryParser.Query(QueryParser.java:162)
> at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:131)
> at 
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:255)
> at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:49)
> at org.apache.solr.search.QParser.getQuery(QParser.java:173)
> at 
> org.apache.solr.util.SolrPluginUtils.doSimpleQuery(SolrPluginUtils.java:479)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:390)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:343)
> at 
> org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:100)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:306)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> 

[jira] [Commented] (SOLR-13205) StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery

2020-07-10 Thread Pramod Kumar (Jira)


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

Pramod Kumar commented on SOLR-13205:
-

Hey Jason,

The change in init that checks the default field for emptiness is partly 
related. That check will ensure that a useless default field is not passed in, 
and we can error out early.

The parser checks I ended up doing since I was touching that method anyway.

Regarding CHANGES.txt, my alias (pramodkumar9) please!

Thanks for taking a peek Jason.

Pramod

 

Not sure 

> StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery
> 
>
> Key: SOLR-13205
> URL: https://issues.apache.org/jira/browse/SOLR-13205
> Project: Solr
>  Issue Type: Bug
>  Components: search
>Affects Versions: master (9.0)
> Environment: h1. Steps to reproduce
> * Use a Linux machine.
> * Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s 
> /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection and reproducing the bug
> We followed [Exercise 
> 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from 
> the [Solr 
> Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html].
> {noformat}
> mkdir -p /tmp/home
> echo '' > 
> /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no 
> replication, and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": 
> {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' 
> http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary 
> '{"add-copy-field" : {"source":"*","dest":"_text_"}}' 
> http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> curl -v “URL_BUG”
> {noformat}
> Please check the issue description below to find the “URL_BUG” that will 
> allow you to reproduce the issue reported.
>Reporter: Johannes Kloos
>Assignee: Jason Gerlowski
>Priority: Minor
>  Labels: diffblue, newdev
> Attachments: SOLR-13205.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?df==debug=all=on
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: 0
> at java.lang.String.charAt(String.java:658)
> at 
> org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:1045)
> at 
> org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:801)
> at org.apache.solr.parser.QueryParser.Term(QueryParser.java:421)
> at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:278)
> at org.apache.solr.parser.QueryParser.Query(QueryParser.java:162)
> at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:131)
> at 
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:255)
> at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:49)
> at org.apache.solr.search.QParser.getQuery(QParser.java:173)
> at 
> org.apache.solr.util.SolrPluginUtils.doSimpleQuery(SolrPluginUtils.java:479)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:390)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:343)
> at 
> org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:100)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:306)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> {noformat}
> The “df” parameter means that we set the empty string as default field(!). 
> Since we do not give a field in the query, the default field is substituted 
> in getFieldQuery. We then check if the field starts with “_” by using 
> charAt(0).
> A trivial fix would be to replace field.charAt(0) == ‘_’ with 
> field.startsWith(“_”).
> To set up an environment to reproduce this bug, follow the description in the 
> ‘Environment’ field.
> We 

[jira] [Commented] (SOLR-13205) StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery

2020-07-10 Thread Jason Gerlowski (Jira)


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

Jason Gerlowski commented on SOLR-13205:


Hey Pramod - got a chance to review your patch this afternoon.  It all looks 
great - with one partial exception: I don't fully understand why you made the 
changes you did to {{SolrQueryParserBase.init}}.  Are those tied in some way to 
the IOOBE this patch resolves, or were you just improving things while you were 
in the file?  The two null/empty-check conditionals there seem like generally 
good defensive coding, so I'm fine with them as long as the tests pass.  Just 
wanted to make sure I understood them in case there's something I'm missing.

Plan on running the tests and then committing this, as long as I hear back from 
you with confirmation about that logic.

One last question - do you have a specific name/username you would like 
credited as in the solr/CHANGES.txt file?  I'll credit you as your JIRA name 
"Pramod Kumar" unless you want something else in particular.  Some people are 
particular about it, so it always pays to ask.

> StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery
> 
>
> Key: SOLR-13205
> URL: https://issues.apache.org/jira/browse/SOLR-13205
> Project: Solr
>  Issue Type: Bug
>  Components: search
>Affects Versions: master (9.0)
> Environment: h1. Steps to reproduce
> * Use a Linux machine.
> * Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s 
> /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection and reproducing the bug
> We followed [Exercise 
> 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from 
> the [Solr 
> Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html].
> {noformat}
> mkdir -p /tmp/home
> echo '' > 
> /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no 
> replication, and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": 
> {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' 
> http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary 
> '{"add-copy-field" : {"source":"*","dest":"_text_"}}' 
> http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> curl -v “URL_BUG”
> {noformat}
> Please check the issue description below to find the “URL_BUG” that will 
> allow you to reproduce the issue reported.
>Reporter: Johannes Kloos
>Assignee: Jason Gerlowski
>Priority: Minor
>  Labels: diffblue, newdev
> Attachments: SOLR-13205.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?df==debug=all=on
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: 0
> at java.lang.String.charAt(String.java:658)
> at 
> org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:1045)
> at 
> org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:801)
> at org.apache.solr.parser.QueryParser.Term(QueryParser.java:421)
> at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:278)
> at org.apache.solr.parser.QueryParser.Query(QueryParser.java:162)
> at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:131)
> at 
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:255)
> at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:49)
> at org.apache.solr.search.QParser.getQuery(QParser.java:173)
> at 
> org.apache.solr.util.SolrPluginUtils.doSimpleQuery(SolrPluginUtils.java:479)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:390)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:343)
> at 
> org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:100)
> at 
> 

[jira] [Assigned] (SOLR-13205) StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery

2020-07-10 Thread Jason Gerlowski (Jira)


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

Jason Gerlowski reassigned SOLR-13205:
--

Assignee: Jason Gerlowski

> StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery
> 
>
> Key: SOLR-13205
> URL: https://issues.apache.org/jira/browse/SOLR-13205
> Project: Solr
>  Issue Type: Bug
>  Components: search
>Affects Versions: master (9.0)
> Environment: h1. Steps to reproduce
> * Use a Linux machine.
> * Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s 
> /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection and reproducing the bug
> We followed [Exercise 
> 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from 
> the [Solr 
> Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html].
> {noformat}
> mkdir -p /tmp/home
> echo '' > 
> /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no 
> replication, and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": 
> {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' 
> http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary 
> '{"add-copy-field" : {"source":"*","dest":"_text_"}}' 
> http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> curl -v “URL_BUG”
> {noformat}
> Please check the issue description below to find the “URL_BUG” that will 
> allow you to reproduce the issue reported.
>Reporter: Johannes Kloos
>Assignee: Jason Gerlowski
>Priority: Minor
>  Labels: diffblue, newdev
> Attachments: SOLR-13205.patch
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?df==debug=all=on
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: 0
> at java.lang.String.charAt(String.java:658)
> at 
> org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:1045)
> at 
> org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:801)
> at org.apache.solr.parser.QueryParser.Term(QueryParser.java:421)
> at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:278)
> at org.apache.solr.parser.QueryParser.Query(QueryParser.java:162)
> at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:131)
> at 
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:255)
> at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:49)
> at org.apache.solr.search.QParser.getQuery(QParser.java:173)
> at 
> org.apache.solr.util.SolrPluginUtils.doSimpleQuery(SolrPluginUtils.java:479)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:390)
> at 
> org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:343)
> at 
> org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:100)
> at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:306)
> at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> {noformat}
> The “df” parameter means that we set the empty string as default field(!). 
> Since we do not give a field in the query, the default field is substituted 
> in getFieldQuery. We then check if the field starts with “_” by using 
> charAt(0).
> A trivial fix would be to replace field.charAt(0) == ‘_’ with 
> field.startsWith(“_”).
> To set up an environment to reproduce this bug, follow the description in the 
> ‘Environment’ field.
> We automatically found this issue and ~70 more like this using [Diffblue 
> Microservices Testing|https://www.diffblue.com/labs/?utm_source=solr-br]. 
> Find more information on this [fuzz testing 
> campaign|https://www.diffblue.com/blog/2018/12/19/diffblue-microservice-testing-a-sneak-peek-at-our-early-product-and-results?utm_source=solr-br].



--
This message was sent by Atlassian 

[jira] [Commented] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller commented on SOLR-14636:
---

I couldn't get this thing to work for crap for 10 years and now I can send it 
to the moon and back if I want - some excitement along the trail might leak 
out, but it won't affect the results ;) Those will be very scientific. Very 
scientific.

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-13101) Shared storage support in SolrCloud

2020-07-10 Thread Andy Vuong (Jira)


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

Andy Vuong commented on SOLR-13101:
---

Hey Solr Community!

I wanted to share an update on this JIRA. We've recently decided to continue 
work on this project internally for convenience and as we work through new 
challenges and re-visit our design of shared storage. Some of these challenges 
include:
 * Forcing commits and pushes to Blob on each (sub) indexing batch makes things 
expensive (paying traffic to S3) and less efficient from a SolrCloud 
perspective (too many small commits, merge cost),
 * Delaying ack to client on an indexing batch until data is indexed, segment 
is created then pushed to S3 slows things down considerably,
 * Transaction logs are used heavily in SolrCloud code. Having nodes with non 
persistent storage is challenging (for example post shard split recovery mode)

Work is progressing but we'll no longer use our feature branch for this work. 
We'll be sure to keep the community updated in the future as we progress on 
addressing these issues.

> Shared storage support in SolrCloud
> ---
>
> Key: SOLR-13101
> URL: https://issues.apache.org/jira/browse/SOLR-13101
> Project: Solr
>  Issue Type: New Feature
>  Components: SolrCloud
>Reporter: Yonik Seeley
>Priority: Major
>  Time Spent: 15h 50m
>  Remaining Estimate: 0h
>
> Solr should have first-class support for shared storage (blob/object stores 
> like S3, google cloud storage, etc. and shared filesystems like HDFS, NFS, 
> etc).
> The key component will likely be a new replica type for shared storage.  It 
> would have many of the benefits of the current "pull" replicas (not indexing 
> on all replicas, all shards identical with no shards getting out-of-sync, 
> etc), but would have additional benefits:
>  - Any shard could become leader (the blob store always has the index)
>  - Better elasticity scaling down
>- durability not linked to number of replcias.. a single replica could be 
> common for write workloads
>- could drop to 0 replicas for a shard when not needed (blob store always 
> has index)
>  - Allow for higher performance write workloads by skipping the transaction 
> log
>- don't pay for what you don't need
>- a commit will be necessary to flush to stable storage (blob store)
>  - A lot of the complexity and failure modes go away
> An additional component a Directory implementation that will work well with 
> blob stores.  We probably want one that treats local disk as a cache since 
> the latency to remote storage is so large.  I think there are still some 
> "locking" issues to be solved here (ensuring that more than one writer to the 
> same index won't corrupt it).  This should probably be pulled out into a 
> different JIRA issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-11208) Usage SynchronousQueue in Executors prevent large scale operations

2020-07-10 Thread Ilan Ginzburg (Jira)


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

Ilan Ginzburg commented on SOLR-11208:
--

I've put out a PR [https://github.com/apache/lucene-solr/pull/1664].

Tests pass. Would like somebody to take a look in case I missed something.

> Usage SynchronousQueue in Executors prevent large scale operations
> --
>
> Key: SOLR-11208
> URL: https://issues.apache.org/jira/browse/SOLR-11208
> Project: Solr
>  Issue Type: Bug
>Affects Versions: 6.6
>Reporter: Björn Häuser
>Priority: Major
> Attachments: response.json
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> I am not sure where to start with this one.
> I tried to post this already on the mailing list: 
> https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201708.mbox/%3c48c49426-33a2-4d79-ae26-a4515b8f8...@gmail.com%3e
> In short: the usage of a SynchronousQueue as the workQeue prevents more tasks 
> than max threads.
> For example, taken from OverseerCollectionMessageHandler:
> {code:java}
>   ExecutorService tpe = new ExecutorUtil.MDCAwareThreadPoolExecutor(5, 10, 
> 0L, TimeUnit.MILLISECONDS,
>   new SynchronousQueue<>(),
>   new 
> DefaultSolrThreadFactory("OverseerCollectionMessageHandlerThreadFactory"));
> {code}
> This Executor is used when doing a REPLACENODE (= ADDREPLICA) command. When 
> the node has more than 10 collections this will fail with the mentioned 
> java.util.concurrent.RejectedExecutionException.
> I am also not sure how to fix this. Just replacing the queue with a different 
> implementation feels wrong to me or could cause unwanted side behaviour.
> Thanks



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14643) Edit Ref Guide about How to Configure Tokenizing Managed Synonyms

2020-07-10 Thread kayak28 (Jira)


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

kayak28 updated SOLR-14643:
---
Summary: Edit Ref Guide about How to Configure Tokenizing Managed Synonyms  
(was: Edit Ref Guide about how to configure Tokenizing Managed Synonyms)

> Edit Ref Guide about How to Configure Tokenizing Managed Synonyms
> -
>
> Key: SOLR-14643
> URL: https://issues.apache.org/jira/browse/SOLR-14643
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>  Components: documentation
>Reporter: kayak28
>Priority: Minor
>
> SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
> synonyms in text files. 
> The configuration is below:
>  
>  {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
>  {{}}{{ignoreCase}}{{=}}{{"true"}}
>  {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
>  {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
> For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
> Managed Resource JSON file, there does not exists any explanation about 
> tokenizer configuration. 
>  For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference 
> guide should contain the configuration guide. 
>   
>  When a user want to tokenize their synonyms, which is used by 
> ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON 
> like below. 
> { "responseHeader":\\{   "status":0, "QTime":3}
> , 
>    "synonymMappings":{ "
>   initArgs":
> {      "ignoreCase":true,        "format":"solr",       {color:#ffab00} 
> "tokenizerFactory":"solr.Factory" {color}   }
> , 
>        "initializedOn":"2014-12-16T22:44:05.33Z", 
>       "managedMap":
> {          "GB": ["GiB", "Gigabyte"],         "TV": ["Television"],         
> "happy": ["glad", "joyful"]}
> }}
>   
>  Also, it might be nice if we could edit Managed Resource JSON via REST API.
>  (This could be another issue.)
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14643) Edit Ref Guide about how to configure Tokenizing Managed Synonyms

2020-07-10 Thread kayak28 (Jira)


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

kayak28 updated SOLR-14643:
---
Priority: Minor  (was: Major)

> Edit Ref Guide about how to configure Tokenizing Managed Synonyms
> -
>
> Key: SOLR-14643
> URL: https://issues.apache.org/jira/browse/SOLR-14643
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>  Components: documentation
>Reporter: kayak28
>Priority: Minor
>
> SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
> synonyms in text files. 
> The configuration is below:
>  
>  {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
>  {{}}{{ignoreCase}}{{=}}{{"true"}}
>  {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
>  {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
> For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
> Managed Resource JSON file, there does not exists any explanation about 
> tokenizer configuration. 
>  For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference 
> guide should contain the configuration guide. 
>   
>  When a user want to tokenize their synonyms, which is used by 
> ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON 
> like below. 
> { "responseHeader":\\{   "status":0, "QTime":3}
> , 
>    "synonymMappings":{ "
>   initArgs":
> {      "ignoreCase":true,        "format":"solr",       {color:#ffab00} 
> "tokenizerFactory":"solr.Factory" {color}   }
> , 
>        "initializedOn":"2014-12-16T22:44:05.33Z", 
>       "managedMap":
> {          "GB": ["GiB", "Gigabyte"],         "TV": ["Television"],         
> "happy": ["glad", "joyful"]}
> }}
>   
>  Also, it might be nice if we could edit Managed Resource JSON via REST API.
>  (This could be another issue.)
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14643) Edit Ref Guide about how to configure Tokenizing Managed Synonyms

2020-07-10 Thread kayak28 (Jira)


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

kayak28 updated SOLR-14643:
---
Description: 
SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
synonyms in text files. 

The configuration is below:

 
 {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
 {{}}{{ignoreCase}}{{=}}{{"true"}}
 {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
 {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}


 For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
Managed Resource JSON file, there does not exists any explanation about 
tokenizer configuration. 
 For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference guide 
should contain the configuration guide. 
  
 When a user want to tokenize their synonyms, which is used by 
ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON like 
below. 

{ "responseHeader":\{   "status":0, "QTime":3}, 
   "synonymMappings":{ "
 initArgs":{ 

    "ignoreCase":true,   

    "format":"solr",   

    "tokenizerFactory":"solr.Factory"    }, 
       "initializedOn":"2014-12-16T22:44:05.33Z", 
      "managedMap":{ 

        "GB": ["GiB", "Gigabyte"],

        "TV": ["Television"],

        "happy": ["glad", "joyful"]}

}}
  
 Also, it might be nice if we could edit Managed Resource JSON via REST API.
 (This could be another issue.)
  

  was:
SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
synonyms in text files. 

The configuration is below:

 
{{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
{{}}{{ignoreCase}}{{=}}{{"true"}}
{{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
{{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
{{}}
For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
Managed Resource JSON file, there does not exists any explanation about 
tokenizer configuration. 
For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference guide 
should contain the configuration guide. 
 
When a user want to tokenize their synonyms, which is used by 
ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON like 
below. 


{ "responseHeader":{
  "status":0, "QTime":3}, 
  "synonymMappings":{ "
      initArgs":{ 
      "ignoreCase":true, 
      "format":"solr", 
      "tokenizerFactory":"solr.Factory"
   }, 
      "initializedOn":"2014-12-16T22:44:05.33Z", 
     "managedMap":{ 
         "GB": ["GiB", "Gigabyte"], 
         "TV": ["Television"], 
         "happy": ["glad", "joyful"]}}}
 
Also, it might be nice if we could edit Managed Resource JSON via REST API.
(This could be another issue.)
 
{{}}


> Edit Ref Guide about how to configure Tokenizing Managed Synonyms
> -
>
> Key: SOLR-14643
> URL: https://issues.apache.org/jira/browse/SOLR-14643
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>  Components: documentation
>Reporter: kayak28
>Priority: Major
>
> SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
> synonyms in text files. 
> The configuration is below:
>  
>  {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
>  {{}}{{ignoreCase}}{{=}}{{"true"}}
>  {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
>  {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
>  For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
> Managed Resource JSON file, there does not exists any explanation about 
> tokenizer configuration. 
>  For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference 
> guide should contain the configuration guide. 
>   
>  When a user want to tokenize their synonyms, which is used by 
> ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON 
> like below. 
> { "responseHeader":\{   "status":0, "QTime":3}, 
>    "synonymMappings":{ "
>  initArgs":{ 
>     "ignoreCase":true,   
>     "format":"solr",   
>     "tokenizerFactory":"solr.Factory"    }, 
>        "initializedOn":"2014-12-16T22:44:05.33Z", 
>       "managedMap":{ 
>         "GB": ["GiB", "Gigabyte"],
>         "TV": ["Television"],
>         "happy": ["glad", "joyful"]}
> }}
>   
>  Also, it might be nice if we could edit Managed Resource JSON via REST API.
>  (This could be another issue.)
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14643) Edit Ref Guide about how to configure Tokenizing Managed Synonyms

2020-07-10 Thread kayak28 (Jira)


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

kayak28 updated SOLR-14643:
---
Description: 
SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
synonyms in text files. 

The configuration is below:

 
 {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
 {{}}{{ignoreCase}}{{=}}{{"true"}}
 {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
 {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}

For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
Managed Resource JSON file, there does not exists any explanation about 
tokenizer configuration. 
 For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference guide 
should contain the configuration guide. 
  
 When a user want to tokenize their synonyms, which is used by 
ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON like 
below. 

{ "responseHeader":\\{   "status":0, "QTime":3}

, 
   "synonymMappings":{ "
  initArgs":

{      "ignoreCase":true,        "format":"solr",       {color:#ffab00} 
"tokenizerFactory":"solr.Factory" {color}   }

, 
       "initializedOn":"2014-12-16T22:44:05.33Z", 
      "managedMap":

{          "GB": ["GiB", "Gigabyte"],         "TV": ["Television"],         
"happy": ["glad", "joyful"]}

}}
  
 Also, it might be nice if we could edit Managed Resource JSON via REST API.
 (This could be another issue.)
  

  was:
SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
synonyms in text files. 

The configuration is below:

 
 {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
 {{}}{{ignoreCase}}{{=}}{{"true"}}
 {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
 {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}


 For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
Managed Resource JSON file, there does not exists any explanation about 
tokenizer configuration. 
 For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference guide 
should contain the configuration guide. 
  
 When a user want to tokenize their synonyms, which is used by 
ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON like 
below. 

{ "responseHeader":\{   "status":0, "QTime":3}, 
   "synonymMappings":{ "
 initArgs":{ 

    "ignoreCase":true,   

    "format":"solr",   

    "tokenizerFactory":"solr.Factory"    }, 
       "initializedOn":"2014-12-16T22:44:05.33Z", 
      "managedMap":{ 

        "GB": ["GiB", "Gigabyte"],

        "TV": ["Television"],

        "happy": ["glad", "joyful"]}

}}
  
 Also, it might be nice if we could edit Managed Resource JSON via REST API.
 (This could be another issue.)
  


> Edit Ref Guide about how to configure Tokenizing Managed Synonyms
> -
>
> Key: SOLR-14643
> URL: https://issues.apache.org/jira/browse/SOLR-14643
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>  Components: documentation
>Reporter: kayak28
>Priority: Major
>
> SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
> synonyms in text files. 
> The configuration is below:
>  
>  {{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
>  {{}}{{ignoreCase}}{{=}}{{"true"}}
>  {{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
>  {{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
> For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
> Managed Resource JSON file, there does not exists any explanation about 
> tokenizer configuration. 
>  For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference 
> guide should contain the configuration guide. 
>   
>  When a user want to tokenize their synonyms, which is used by 
> ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON 
> like below. 
> { "responseHeader":\\{   "status":0, "QTime":3}
> , 
>    "synonymMappings":{ "
>   initArgs":
> {      "ignoreCase":true,        "format":"solr",       {color:#ffab00} 
> "tokenizerFactory":"solr.Factory" {color}   }
> , 
>        "initializedOn":"2014-12-16T22:44:05.33Z", 
>       "managedMap":
> {          "GB": ["GiB", "Gigabyte"],         "TV": ["Television"],         
> "happy": ["glad", "joyful"]}
> }}
>   
>  Also, it might be nice if we could edit Managed Resource JSON via REST API.
>  (This could be another issue.)
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: 

[jira] [Created] (SOLR-14643) Edit Ref Guide about how to configure Tokenizing Managed Synonyms

2020-07-10 Thread kayak28 (Jira)
kayak28 created SOLR-14643:
--

 Summary: Edit Ref Guide about how to configure Tokenizing Managed 
Synonyms
 Key: SOLR-14643
 URL: https://issues.apache.org/jira/browse/SOLR-14643
 Project: Solr
  Issue Type: Task
  Security Level: Public (Default Security Level. Issues are Public)
  Components: documentation
Reporter: kayak28


SynonymGraphFilter and SynonymFileter can configure a tokenizer to tokenize 
synonyms in text files. 

The configuration is below:

 
{{<}}{{filter}} {{class}}{{=}}{{"solr.SynonymGraphFilterFactory"}}
{{}}{{ignoreCase}}{{=}}{{"true"}}
{{}}{{synonyms}}{{=}}{{"synonyms.txt"}}
{{}}{{tokenizerFactory}}{{=}}{{"solr.[Name of Tokenizer]"}}{{/>}}
{{}}
For ManagedSynonymGraphFilter, even though it can configure tokenizer in the 
Managed Resource JSON file, there does not exists any explanation about 
tokenizer configuration. 
For users to choose ManagedSynonymGraphFilter seamlessly, Solr reference guide 
should contain the configuration guide. 
 
When a user want to tokenize their synonyms, which is used by 
ManagedSynonymGraphFilter, then the user should edit Managed Resource JSON like 
below. 


{ "responseHeader":{
  "status":0, "QTime":3}, 
  "synonymMappings":{ "
      initArgs":{ 
      "ignoreCase":true, 
      "format":"solr", 
      "tokenizerFactory":"solr.Factory"
   }, 
      "initializedOn":"2014-12-16T22:44:05.33Z", 
     "managedMap":{ 
         "GB": ["GiB", "Gigabyte"], 
         "TV": ["Television"], 
         "happy": ["glad", "joyful"]}}}
 
Also, it might be nice if we could edit Managed Resource JSON via REST API.
(This could be another issue.)
 
{{}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller commented on SOLR-14636:
---

Yeah baby, if this was an orchestra, the solr core test module has started to 
sing on key over half the time. That module's gonna be a superstar.

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[GitHub] [lucene-solr] murblanc opened a new pull request #1664: SOLR-11208: Usage SynchronousQueue in Executors prevent large scale operations

2020-07-10 Thread GitBox


murblanc opened a new pull request #1664:
URL: https://github.com/apache/lucene-solr/pull/1664


   In `OverseerCollectionMessageHandler` replace the `SynchronousQueue` by a 
`LinkedBlockingQueue` for handing more jobs to the executor service than there 
are threads.
   
   Given this is an old Jira, the issue is real, the OP suggested that easy fix 
almost 3 years ago and that nobody implemented it, there might be something I 
missed here, so will not push that code before somebody reviews it.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14597) Advanced Query Parser

2020-07-10 Thread Gus Heck (Jira)


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

Gus Heck commented on SOLR-14597:
-

After some work came up with this which omits files that don't have "java" in 
their name, but should give a decent idea:
{code:java}
NS2-MacBook-Pro:lucene-solr-cdg3 gus$ git diff HEAD..master_head | grep 'diff 
..git' | grep java |sed 's#b/#@#' | rev | cut -d'@' -f 1 | rev
gradle/generation/javacc.gradle
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DropIfFlaggedFilter.java
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/DropIfFlaggedFilterFactory.java
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternTypingFilter.java
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/PatternTypingFilterFactory.java
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilter.java
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneous/TypeAsSynonymFilterFactory.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/minhash/MinHashFilterTest.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestConcatenatingTokenStream.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestDropIfFlaggedFilter.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestDropIfFlaggedFilterFactory.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestPatternTypingFilter.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestPatternTypingFilterFactory.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestTypeAsSynonymFilter.java
lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestTypeAsSynonymFilterFactory.java
lucene/core/src/test/org/apache/lucene/analysis/TestStopFilter.java
lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
solr/core/src/java/org/apache/solr/analysis/TokenAnalyzerFilter.java
solr/core/src/java/org/apache/solr/analysis/TokenAnalyzerFilterFactory.java
solr/core/src/java/org/apache/solr/aqp/AdvToken.java
solr/core/src/java/org/apache/solr/aqp/AdvancedQueryParserBase.java
solr/core/src/java/org/apache/solr/aqp/ParseException.java
solr/core/src/java/org/apache/solr/aqp/QueryParser.java
solr/core/src/java/org/apache/solr/aqp/QueryParser.jj
solr/core/src/java/org/apache/solr/aqp/QueryParserConstants.java
solr/core/src/java/org/apache/solr/aqp/QueryParserTokenManager.java
solr/core/src/java/org/apache/solr/aqp/SpanContext.java
solr/core/src/java/org/apache/solr/aqp/Token.java
solr/core/src/java/org/apache/solr/aqp/TokenMgrError.java
solr/core/src/java/org/apache/solr/aqp/package-info.java
solr/core/src/java/org/apache/solr/parser/Operator.java
solr/core/src/java/org/apache/solr/parser/QueryParser.java
solr/core/src/java/org/apache/solr/parser/QueryParser.jj
solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
solr/core/src/java/org/apache/solr/parser/SynonymQueryStyle.java
solr/core/src/java/org/apache/solr/schema/IndexSchema.java
solr/core/src/java/org/apache/solr/schema/TextField.java
solr/core/src/java/org/apache/solr/search/AdvancedQParser.java
solr/core/src/java/org/apache/solr/search/AdvancedQParserPlugin.java
solr/core/src/java/org/apache/solr/search/AdvancedQueryParser.java
solr/core/src/java/org/apache/solr/search/ComplexPhraseQParserPlugin.java
solr/core/src/java/org/apache/solr/search/DisMaxQParser.java
solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
solr/core/src/java/org/apache/solr/search/QParserPlugin.java
solr/core/src/java/org/apache/solr/search/QueryParsing.java
solr/core/src/java/org/apache/solr/search/SimpleQParserPlugin.java
solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
solr/core/src/test/org/apache/solr/analysis/PatternTypingFilterFactoryTest.java
solr/core/src/test/org/apache/solr/analysis/TokenAnalyzerFilterFactoryTest.java
solr/core/src/test/org/apache/solr/aqp/AbstractAqpTestCase.java
solr/core/src/test/org/apache/solr/aqp/CharacterRangeTest.java
solr/core/src/test/org/apache/solr/aqp/FieldedSearchTest.java
solr/core/src/test/org/apache/solr/aqp/LiteralPhraseTest.java
solr/core/src/test/org/apache/solr/aqp/MustNotTest.java
solr/core/src/test/org/apache/solr/aqp/MustTest.java
solr/core/src/test/org/apache/solr/aqp/NumericSearchTest.java
solr/core/src/test/org/apache/solr/aqp/OrderedDistanceGroupTest.java
solr/core/src/test/org/apache/solr/aqp/PhraseTest.java
solr/core/src/test/org/apache/solr/aqp/ShouldTest.java
solr/core/src/test/org/apache/solr/aqp/SimpleGroupTest.java
solr/core/src/test/org/apache/solr/aqp/SimpleQueryTest.java
solr/core/src/test/org/apache/solr/aqp/TemporalFieldedSearchTest.java

[jira] [Updated] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller updated SOLR-14636:
--
Attachment: (was: solr-core-serial-run.gif)

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller updated SOLR-14636:
--
Description: 
SolrCloud powers critical infrastructure and needs the ability to run quickly 
with stability. This reference implementation will allow for this.

*location*: [https://github.com/apache/lucene-solr/tree/reference_impl]

*status*: alpha

*speed*: ludicrous

*tests***:
 * *core*: passing with ignores (not solid*)
 * *solrj*: tbd
 * *test-framework*: tbd
 * *contrib/analysis-extras*: tbd
 * *contrib/analytics*: tbd
 * *contrib/clustering*: tbd
 * *contrib/dataimporthandler*: tbd
 * *contrib/dataimporthandler-extras*: tbd
 * *contrib/extraction*: tbd
 * *contrib/jaegertracer-configurator*: tbd
 * *contrib/langid*: tbd
 * *contrib/prometheus-exporter*: tbd
 * *contrib/velocity*: tbd

_* Running tests quickly and efficiently with strict policing will more 
frequently find bugs and requires a period of hardening._
 _** Non Nightly currently, Nightly comes last._

  was:
SolrCloud powers critical infrastructure and needs the ability to run quickly 
with stability. This reference implementation will allow for this.

*location*: [https://github.com/apache/lucene-solr/tree/reference_impl]

*status*: alpha

*tests***:
 * *core*: passing with ignores (not solid*)
 * *solrj*: tbd
 * *test-framework*: tbd
 * *contrib/analysis-extras*: tbd
 * *contrib/analytics*: tbd
 * *contrib/clustering*: tbd
 * *contrib/dataimporthandler*: tbd
 * *contrib/dataimporthandler-extras*: tbd
 * *contrib/extraction*: tbd
 * *contrib/jaegertracer-configurator*: tbd
 * *contrib/langid*: tbd
 * *contrib/prometheus-exporter*: tbd
 * *contrib/velocity*: tbd

_* Running tests quickly and efficiently with strict policing will more 
frequently find bugs and requires a period of hardening._
 _** Non Nightly currently, Nightly comes last._


> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Issue Comment Deleted] (SOLR-14636) Provide a reference implementation for SolrCloud that is stable and fast.

2020-07-10 Thread Mark Robert Miller (Jira)


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

Mark Robert Miller updated SOLR-14636:
--
Comment: was deleted

(was: !solr-core-serial-run.gif!)

> Provide a reference implementation for SolrCloud that is stable and fast.
> -
>
> Key: SOLR-14636
> URL: https://issues.apache.org/jira/browse/SOLR-14636
> Project: Solr
>  Issue Type: Task
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Mark Robert Miller
>Assignee: Mark Robert Miller
>Priority: Major
>
> SolrCloud powers critical infrastructure and needs the ability to run quickly 
> with stability. This reference implementation will allow for this.
> *location*: [https://github.com/apache/lucene-solr/tree/reference_impl]
> *status*: alpha
> *speed*: ludicrous
> *tests***:
>  * *core*: passing with ignores (not solid*)
>  * *solrj*: tbd
>  * *test-framework*: tbd
>  * *contrib/analysis-extras*: tbd
>  * *contrib/analytics*: tbd
>  * *contrib/clustering*: tbd
>  * *contrib/dataimporthandler*: tbd
>  * *contrib/dataimporthandler-extras*: tbd
>  * *contrib/extraction*: tbd
>  * *contrib/jaegertracer-configurator*: tbd
>  * *contrib/langid*: tbd
>  * *contrib/prometheus-exporter*: tbd
>  * *contrib/velocity*: tbd
> _* Running tests quickly and efficiently with strict policing will more 
> frequently find bugs and requires a period of hardening._
>  _** Non Nightly currently, Nightly comes last._



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Created] (SOLR-14642) Add a no-sort option for the /export handler

2020-07-10 Thread Joel Bernstein (Jira)
Joel Bernstein created SOLR-14642:
-

 Summary: Add a no-sort option for the /export handler
 Key: SOLR-14642
 URL: https://issues.apache.org/jira/browse/SOLR-14642
 Project: Solr
  Issue Type: New Feature
  Security Level: Public (Default Security Level. Issues are Public)
Reporter: Joel Bernstein


The sort is the most expensive operation of the the /export handler. Spark-Solr 
relies heavily on the /export handler but doesn't make use of the sort. As 
Spark-Solr use continues to increase its time to add optimizations specifically 
for Spark-Solr.

This ticket will add a no-sort option to the export handler to accelerate 
Spark-Solr queries.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14608) Faster sorting for the /export handler

2020-07-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on SOLR-14608:


Commit 95e706abc425003d79a037500b9887f2c8a7798c in lucene-solr's branch 
refs/heads/jira/SOLR-14608-export from Joel Bernstein
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=95e706a ]

SOLR-14608: Size segment level sort queues based on segement maxdoc


> Faster sorting for the /export handler
> --
>
> Key: SOLR-14608
> URL: https://issues.apache.org/jira/browse/SOLR-14608
> Project: Solr
>  Issue Type: New Feature
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Joel Bernstein
>Assignee: Andrzej Bialecki
>Priority: Major
>
> The largest cost of the export handler is the sorting. This ticket will 
> implement an improved algorithm for sorting that should greatly increase 
> overall throughput for the export handler.
> *The current algorithm is as follows:*
> Collect a bitset of matching docs. Iterate over that bitset and materialize 
> the top level oridinals for the sort fields in the document and add them to 
> priority queue of size 3. Then export the top 3 docs, turn off the 
> bits in the bit set and iterate again until all docs are sorted and sent. 
> There are two performance bottlenecks with this approach:
> 1) Materializing the top level ordinals adds a huge amount of overhead to the 
> sorting process.
> 2) The size of priority queue, 30,000, adds significant overhead to sorting 
> operations.
> *The new algorithm:*
> Has a top level *merge sort iterator* that wraps segment level iterators that 
> perform segment level priority queue sorts.
> *Segment level:*
> The segment level docset will be iterated and the segment level ordinals for 
> the sort fields will be materialized and added to a segment level priority 
> queue. As the segment level iterator pops docs from the priority queue the 
> top level ordinals for the sort fields are materialized. Because the top 
> level ordinals are materialized AFTER the sort, they only need to be looked 
> up when the segment level ordinal changes. This takes advantage of the sort 
> to limit the lookups into the top level ordinal structures. This also 
> eliminates redundant lookups of top level ordinals that occur during the 
> multiple passes over the matching docset.
> The segment level priority queues can be kept smaller than 30,000 to improve 
> performance of the sorting operations because the overall batch size will 
> still be 30,000 or greater when all the segment priority queue sizes are 
> added up. This allows for batch sizes much larger then 30,000 without using a 
> single large priority queue. The increased batch size means fewer iterations 
> over the matching docset and the decreased priority queue size means faster 
> sorting operations.
> *Top level:*
> A top level iterator does a merge sort over the segment level iterators by 
> comparing the top level ordinals materialized when the segment level docs are 
> popped from the segment level priority queues. This requires no extra memory 
> and will be very performant.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Comment Edited] (SOLR-14404) CoreContainer level custom requesthandlers

2020-07-10 Thread Noble Paul (Jira)


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

Noble Paul edited comment on SOLR-14404 at 7/10/20, 1:05 PM:
-

I have hardened the server code in the PR 
[https://github.com/apache/lucene-solr/pull/1661]

I beasted it for some time. No failures yet.  [~erickerickson] please try to 
beast the branch it if possible


was (Author: noble.paul):
I have hardened the tests in the PR 
[https://github.com/apache/lucene-solr/pull/1661]

I beasted it for some time. No failures yet.  [~erickerickson] please try to 
beast the branch it if possible

> CoreContainer level custom requesthandlers
> --
>
> Key: SOLR-14404
> URL: https://issues.apache.org/jira/browse/SOLR-14404
> Project: Solr
>  Issue Type: New Feature
>Reporter: Noble Paul
>Assignee: Noble Paul
>Priority: Major
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> caveats:
>  * The class should be annotated with  {{org.apache.solr.api.EndPoint}}. 
> Which means only V2 APIs are supported
>  * The path should have prefix {{/api/plugin}}
> add a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin",
>   "class": "full.ClassName", 
>   "path-prefix" : "some-path-prefix"
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> add a plugin from a package
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin", 
>   "class": "pkgName:full.ClassName" ,
>   "path-prefix" : "some-path-prefix"  ,  
>   "version: "1.0"   
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> remove a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "remove": "myplugin"
> }' http://localhost:8983/api/cluster/plugins
> {code}
> The configuration will be stored in the {{clusterprops.json}}
>  as
> {code:java}
> {
> "plugins" : {
> "myplugin" : {"class": "full.ClassName", "path-prefix" : "some-path-prefix" }
> }
> }
> {code}
> example plugin
> {code:java}
> public class MyPlugin {
>   private final CoreContainer coreContainer;
>   public MyPlugin(CoreContainer coreContainer) {
> this.coreContainer = coreContainer;
>   }
>   @EndPoint(path = "/$path-prefix/path1",
> method = METHOD.GET,
> permission = READ)
>   public void call(SolrQueryRequest req, SolrQueryResponse rsp){
> rsp.add("myplugin.version", "2.0");
>   }
> }
> {code}
> This plugin will be accessible on all nodes at 
> {{/api/some-path-prefix/path1}}. It's possible to add more methods at 
> different paths. Ensure that all paths start with {{$path-prefix}} because 
> that is the prefix in which the plugin is registered with. So 
> {{/some-path-prefix/path2}} , {{/some-path-prefix/my/deeply/nested/path}} are 
> all valid paths. 
> It's possible that the user chooses to register the plugin with a different 
> name. In that case , use a template variable as follows in paths 
> {{/cluster/some/other/path}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Resolved] (LUCENE-9321) Port documentation task to gradle

2020-07-10 Thread Tomoko Uchida (Jira)


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

Tomoko Uchida resolved LUCENE-9321.
---
Resolution: Resolved

If I missed something, please feel free to reopen.

> Port documentation task to gradle
> -
>
> Key: LUCENE-9321
> URL: https://issues.apache.org/jira/browse/LUCENE-9321
> Project: Lucene - Core
>  Issue Type: Sub-task
>  Components: general/build
>Reporter: Tomoko Uchida
>Assignee: Uwe Schindler
>Priority: Major
> Fix For: master (9.0)
>
> Attachments: screenshot-1.png
>
>  Time Spent: 9h
>  Remaining Estimate: 0h
>
> This is a placeholder issue for porting ant "documentation" task to gradle. 
> The generated documents should be able to be published on lucene.apache.org 
> web site on "as-is" basis.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9321) Port documentation task to gradle

2020-07-10 Thread Tomoko Uchida (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17155459#comment-17155459
 ] 

Tomoko Uchida commented on LUCENE-9321:
---

We now have {{documentation}} task and its lint task {{checkBrokenLinks}} on 
the master branch. I think we can resolve this.

> Port documentation task to gradle
> -
>
> Key: LUCENE-9321
> URL: https://issues.apache.org/jira/browse/LUCENE-9321
> Project: Lucene - Core
>  Issue Type: Sub-task
>  Components: general/build
>Reporter: Tomoko Uchida
>Assignee: Uwe Schindler
>Priority: Major
> Fix For: master (9.0)
>
> Attachments: screenshot-1.png
>
>  Time Spent: 9h
>  Remaining Estimate: 0h
>
> This is a placeholder issue for porting ant "documentation" task to gradle. 
> The generated documents should be able to be published on lucene.apache.org 
> web site on "as-is" basis.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-13132) Improve JSON "terms" facet performance when sorted by relatedness

2020-07-10 Thread Michael Gibney (Jira)


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

Michael Gibney commented on SOLR-13132:
---

Excellent! Thanks [~hossman]!

> Improve JSON "terms" facet performance when sorted by relatedness 
> --
>
> Key: SOLR-13132
> URL: https://issues.apache.org/jira/browse/SOLR-13132
> Project: Solr
>  Issue Type: Improvement
>  Components: Facet Module
>Affects Versions: 7.4, master (9.0)
>Reporter: Michael Gibney
>Assignee: Chris M. Hostetter
>Priority: Major
> Fix For: master (9.0), 8.7
>
> Attachments: SOLR-13132-benchmarks.tgz, 
> SOLR-13132-with-cache-01.patch, SOLR-13132-with-cache.patch, 
> SOLR-13132.patch, SOLR-13132_testSweep.patch
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> When sorting buckets by {{relatedness}}, JSON "terms" facet must calculate 
> {{relatedness}} for every term. 
> The current implementation uses a standard uninverted approach (either 
> {{docValues}} or {{UnInvertedField}}) to get facet counts over the domain 
> base docSet, and then uses that initial pass as a pre-filter for a 
> second-pass, inverted approach of fetching docSets for each relevant term 
> (i.e., {{count > minCount}}?) and calculating intersection size of those sets 
> with the domain base docSet.
> Over high-cardinality fields, the overhead of per-term docSet creation and 
> set intersection operations increases request latency to the point where 
> relatedness sort may not be usable in practice (for my use case, even after 
> applying the patch for SOLR-13108, for a field with ~220k unique terms per 
> core, QTime for high-cardinality domain docSets were, e.g.: cardinality 
> 1816684=9000ms, cardinality 5032902=18000ms).
> The attached patch brings the above example QTimes down to a manageable 
> ~300ms and ~250ms respectively. The approach calculates uninverted facet 
> counts over domain base, foreground, and background docSets in parallel in a 
> single pass. This allows us to take advantage of the efficiencies built into 
> the standard uninverted {{FacetFieldProcessorByArray[DV|UIF]}}), and avoids 
> the per-term docSet creation and set intersection overhead.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14404) CoreContainer level custom requesthandlers

2020-07-10 Thread Erick Erickson (Jira)


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

Erick Erickson commented on SOLR-14404:
---

OK, I'll start it out. Yesterday I only got 1 failure in 1,000 iterations so it 
might be a while.

> CoreContainer level custom requesthandlers
> --
>
> Key: SOLR-14404
> URL: https://issues.apache.org/jira/browse/SOLR-14404
> Project: Solr
>  Issue Type: New Feature
>Reporter: Noble Paul
>Assignee: Noble Paul
>Priority: Major
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> caveats:
>  * The class should be annotated with  {{org.apache.solr.api.EndPoint}}. 
> Which means only V2 APIs are supported
>  * The path should have prefix {{/api/plugin}}
> add a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin",
>   "class": "full.ClassName", 
>   "path-prefix" : "some-path-prefix"
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> add a plugin from a package
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin", 
>   "class": "pkgName:full.ClassName" ,
>   "path-prefix" : "some-path-prefix"  ,  
>   "version: "1.0"   
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> remove a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "remove": "myplugin"
> }' http://localhost:8983/api/cluster/plugins
> {code}
> The configuration will be stored in the {{clusterprops.json}}
>  as
> {code:java}
> {
> "plugins" : {
> "myplugin" : {"class": "full.ClassName", "path-prefix" : "some-path-prefix" }
> }
> }
> {code}
> example plugin
> {code:java}
> public class MyPlugin {
>   private final CoreContainer coreContainer;
>   public MyPlugin(CoreContainer coreContainer) {
> this.coreContainer = coreContainer;
>   }
>   @EndPoint(path = "/$path-prefix/path1",
> method = METHOD.GET,
> permission = READ)
>   public void call(SolrQueryRequest req, SolrQueryResponse rsp){
> rsp.add("myplugin.version", "2.0");
>   }
> }
> {code}
> This plugin will be accessible on all nodes at 
> {{/api/some-path-prefix/path1}}. It's possible to add more methods at 
> different paths. Ensure that all paths start with {{$path-prefix}} because 
> that is the prefix in which the plugin is registered with. So 
> {{/some-path-prefix/path2}} , {{/some-path-prefix/my/deeply/nested/path}} are 
> all valid paths. 
> It's possible that the user chooses to register the plugin with a different 
> name. In that case , use a template variable as follows in paths 
> {{/cluster/some/other/path}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14469) Removed deprecated code in solr/core (master only)

2020-07-10 Thread Erick Erickson (Jira)


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

Erick Erickson commented on SOLR-14469:
---

Oooh, thanks [~dsmiley]. I'd have just jumped in and missed that entirely.

> Removed deprecated code in solr/core (master only)
> --
>
> Key: SOLR-14469
> URL: https://issues.apache.org/jira/browse/SOLR-14469
> Project: Solr
>  Issue Type: Sub-task
>Reporter: Erick Erickson
>Assignee: Erick Erickson
>Priority: Major
>
> I'm currently working on getting all the warnings out of the code, so this is 
> something of a placeholder for a week or two.
> There will be sub-tasks, please create them when you start working on a 
> project.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[GitHub] [lucene-solr] CaoManhDat opened a new pull request #1663: SOLR-14641: PeerSync, remove canHandleVersionRanges check

2020-07-10 Thread GitBox


CaoManhDat opened a new pull request #1663:
URL: https://github.com/apache/lucene-solr/pull/1663


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (LUCENE-9321) Port documentation task to gradle

2020-07-10 Thread Dawid Weiss (Jira)


[ 
https://issues.apache.org/jira/browse/LUCENE-9321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17155253#comment-17155253
 ] 

Dawid Weiss commented on LUCENE-9321:
-

Is there anything left we need to do here?

> Port documentation task to gradle
> -
>
> Key: LUCENE-9321
> URL: https://issues.apache.org/jira/browse/LUCENE-9321
> Project: Lucene - Core
>  Issue Type: Sub-task
>  Components: general/build
>Reporter: Tomoko Uchida
>Assignee: Uwe Schindler
>Priority: Major
> Fix For: master (9.0)
>
> Attachments: screenshot-1.png
>
>  Time Spent: 9h
>  Remaining Estimate: 0h
>
> This is a placeholder issue for porting ant "documentation" task to gradle. 
> The generated documents should be able to be published on lucene.apache.org 
> web site on "as-is" basis.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (LUCENE-9077) Gradle build

2020-07-10 Thread Dawid Weiss (Jira)


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

Dawid Weiss updated LUCENE-9077:

Description: 
This task focuses on providing gradle-based build equivalent for Lucene and 
Solr (on master branch). See notes below on why this respin is needed.

The code lives on *gradle-master* branch. It is kept with sync with *master*. 
Try running the following to see an overview of helper guides concerning 
typical workflow, testing and ant-migration helpers:

gradlew :help

A list of items that needs to be added or requires work. If you'd like to work 
on any of these, please add your name to the list. Once you have a patch/ pull 
request let me (dweiss) know - I'll try to coordinate the merges.
 * (/) Apply forbiddenAPIs
 * (/) Generate hardware-aware gradle defaults for parallelism (count of 
workers and test JVMs).
 * (/) Fail the build if --tests filter is applied and no tests execute during 
the entire build (this allows for an empty set of filtered tests at single 
project level).
 * (/) Port other settings and randomizations from common-build.xml
 * (/) Configure security policy/ sandboxing for tests.
 * (/) test's console output on -Ptests.verbose=true
 * (/) add a :helpDeps explanation to how the dependency system works (palantir 
plugin, lockfile) and how to retrieve structured information about current 
dependencies of a given module (in a tree-like output).
 * (/) jar checksums, jar checksum computation and validation. This should be 
done without intermediate folders (directly on dependency sets).
 * (/) verify min. JVM version and exact gradle version on build startup to 
minimize odd build side-effects
 * (/) Repro-line for failed tests/ runs.
 * (/) add a top-level README note about building with gradle (and the required 
JVM).
 * (/) add an equivalent of 'validate-source-patterns' 
(check-source-patterns.groovy) to precommit.
 * (/) add an equivalent of 'rat-sources' to precommit.
 * (/) add an equivalent of 'check-example-lucene-match-version' (solr only) to 
precommit.
 * (/) javadoc compilation

Hard-to-implement stuff already investigated:
 * (/) (done)  -*Printing console output of failed tests.* There doesn't seem 
to be any way to do this in a reasonably efficient way. There are onOutput 
listeners but they're slow to operate and solr tests emit *tons* of output so 
it's an overkill.-
 * (!) (LUCENE-9120) *Tests working with security-debug logs or other JVM-early 
log output*. Gradle's test runner works by redirecting Java's stdout/ syserr so 
this just won't work. Perhaps we can spin the ant-based test runner for such 
corner-cases.

Of lesser importance:
 * (/) Add an equivalent of 'documentation-lint" to precommit.
 * (/) Do not require files to be committed before running precommit. (staged 
files are fine).
 * (/) add rendering of javadocs (gradlew javadoc)
 * (/) identify and port various "regenerate" tasks from ant builds (javacc, 
precompiled automata, etc.)
 * (/) Add Solr packaging for docs/* (see TODO in packaging/build.gradle; 
currently XSLT...)
 * I didn't bother adding Solr dist/test-framework to packaging (who'd use it 
from a binary distribution? 
 * (/) There is some python execution in check-broken-links and 
check-missing-javadocs, not sure if it's been ported
 * (/) Precommit doesn't catch unused imports
 * Attach javadocs to maven publications.
 * Add test 'beasting' (rerunning the same suite multiple times). I'm afraid 
it'll be difficult to run it sensibly because gradle doesn't offer cwd 
separation for the forked test runners.
 * if you diff solr packaged distribution against ant-created distribution 
there are minor differences in library versions and some JARs are excluded/ 
moved around. I didn't try to force these as everything seems to work (tests, 
etc.) – perhaps these differences should  be fixed in the ant build instead.
 * Fill in POM details in gradle/defaults-maven.gradle so that they reflect the 
previous content better (dependencies aside).
 * Add any IDE integration layers that should be added (I use IntelliJ and it 
imports the project out of the box, without the need for any special tuning).

 

*{color:#ff}Note:{color}* this builds on the work done by Mark Miller and 
Cao Mạnh Đạt but also applies lessons learned from those two efforts:
 * *Do not try to do too many things at once*. If we deviate too far from 
master, the branch will be hard to merge.
 * *Do everything in baby-steps* and add small, independent build fragments 
replacing the old ant infrastructure.
 * *Try to engage people to run, test and contribute early*. It can't be a 
one-man effort. The more people understand and can contribute to the build, the 
more healthy it will be.

 

  was:
This task focuses on providing gradle-based build equivalent for Lucene and 
Solr (on master branch). See notes below on why this respin is needed.

The code lives on 

[jira] [Commented] (SOLR-14641) PeerSync, remove canHandleVersionRanges check

2020-07-10 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on SOLR-14641:


Commit 9562dd887a31102f86f710fd99ea53b019a85fcf in lucene-solr's branch 
refs/heads/jira/SOLR-14641 from Cao Manh Dat
[ https://gitbox.apache.org/repos/asf?p=lucene-solr.git;h=9562dd8 ]

SOLR-14641: PeerSync, remove canHandleVersionRanges check


> PeerSync, remove canHandleVersionRanges check
> -
>
> Key: SOLR-14641
> URL: https://issues.apache.org/jira/browse/SOLR-14641
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
>
> SOLR-9207 introduces PeerSync with updates range which committed in 6.2 and 
> 7.0. To maintain backward compatibility at the time we introduce an endpoint 
> in RealTimeGetComponent to check whether a node support that feature or not. 
> It served well its purpose and it should be removed to reduce complexity and 
> a request-response trip for asking that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[GitHub] [lucene-solr] atris commented on pull request #1662: Harden TestBuildingUpMemoryPressure

2020-07-10 Thread GitBox


atris commented on pull request #1662:
URL: https://github.com/apache/lucene-solr/pull/1662#issuecomment-656541978


   Minimally invasive change -- should solve the test failure. I beasted this 
around 150 times with no failures and the counts do seem to match. Unless 
objections, I plan to merge this.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14641) PeerSync Remove canHandleVersionRanges check

2020-07-10 Thread Cao Manh Dat (Jira)


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

Cao Manh Dat updated SOLR-14641:

Summary: PeerSync Remove canHandleVersionRanges check  (was: Remove 
canHandleVersionRanges check)

> PeerSync Remove canHandleVersionRanges check
> 
>
> Key: SOLR-14641
> URL: https://issues.apache.org/jira/browse/SOLR-14641
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
>
> SOLR-9207 introduces PeerSync with updates range which committed in 6.2 and 
> 7.0. To maintain backward compatibility at the time we introduce an endpoint 
> in RealTimeGetComponent to check whether a node support that feature or not. 
> It served well its purpose and it should be removed to reduce complexity and 
> a request-response trip for asking that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Created] (SOLR-14641) Remove canHandleVersionRanges check

2020-07-10 Thread Cao Manh Dat (Jira)
Cao Manh Dat created SOLR-14641:
---

 Summary: Remove canHandleVersionRanges check
 Key: SOLR-14641
 URL: https://issues.apache.org/jira/browse/SOLR-14641
 Project: Solr
  Issue Type: Improvement
  Security Level: Public (Default Security Level. Issues are Public)
Reporter: Cao Manh Dat
Assignee: Cao Manh Dat


SOLR-9207 introduces PeerSync with updates range which committed in 6.2 and 
7.0. To maintain backward compatibility at the time we introduce an endpoint in 
RealTimeGetComponent to check whether a node support that feature or not. 
It served well its purpose and it should be removed to reduce complexity and a 
request-response trip for asking that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Updated] (SOLR-14641) PeerSync, remove canHandleVersionRanges check

2020-07-10 Thread Cao Manh Dat (Jira)


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

Cao Manh Dat updated SOLR-14641:

Summary: PeerSync, remove canHandleVersionRanges check  (was: PeerSync 
Remove canHandleVersionRanges check)

> PeerSync, remove canHandleVersionRanges check
> -
>
> Key: SOLR-14641
> URL: https://issues.apache.org/jira/browse/SOLR-14641
> Project: Solr
>  Issue Type: Improvement
>  Security Level: Public(Default Security Level. Issues are Public) 
>Reporter: Cao Manh Dat
>Assignee: Cao Manh Dat
>Priority: Major
>
> SOLR-9207 introduces PeerSync with updates range which committed in 6.2 and 
> 7.0. To maintain backward compatibility at the time we introduce an endpoint 
> in RealTimeGetComponent to check whether a node support that feature or not. 
> It served well its purpose and it should be removed to reduce complexity and 
> a request-response trip for asking that.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org



[jira] [Commented] (SOLR-14404) CoreContainer level custom requesthandlers

2020-07-10 Thread Noble Paul (Jira)


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

Noble Paul commented on SOLR-14404:
---

{quote}A user might very well have similar logic in client code; I think the 
user shouldn't have to add sleeps nor inspect ZK or similar. The user uploaded 
2.0 then it expects to use 2.0 immediately after. I think it should be up to 
Solr to figure out how to make this work.
{quote}
I didn't make any changes to the test here. The server code is made more robust 
to ensure that it's up to date with ZK

> CoreContainer level custom requesthandlers
> --
>
> Key: SOLR-14404
> URL: https://issues.apache.org/jira/browse/SOLR-14404
> Project: Solr
>  Issue Type: New Feature
>Reporter: Noble Paul
>Assignee: Noble Paul
>Priority: Major
>  Time Spent: 5.5h
>  Remaining Estimate: 0h
>
> caveats:
>  * The class should be annotated with  {{org.apache.solr.api.EndPoint}}. 
> Which means only V2 APIs are supported
>  * The path should have prefix {{/api/plugin}}
> add a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin",
>   "class": "full.ClassName", 
>   "path-prefix" : "some-path-prefix"
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> add a plugin from a package
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "add": {
>   "name":"myplugin", 
>   "class": "pkgName:full.ClassName" ,
>   "path-prefix" : "some-path-prefix"  ,  
>   "version: "1.0"   
>   }
> }' http://localhost:8983/api/cluster/plugins
> {code}
> remove a plugin
> {code:java}
> curl -X POST -H 'Content-type:application/json' --data-binary '
> {
>   "remove": "myplugin"
> }' http://localhost:8983/api/cluster/plugins
> {code}
> The configuration will be stored in the {{clusterprops.json}}
>  as
> {code:java}
> {
> "plugins" : {
> "myplugin" : {"class": "full.ClassName", "path-prefix" : "some-path-prefix" }
> }
> }
> {code}
> example plugin
> {code:java}
> public class MyPlugin {
>   private final CoreContainer coreContainer;
>   public MyPlugin(CoreContainer coreContainer) {
> this.coreContainer = coreContainer;
>   }
>   @EndPoint(path = "/$path-prefix/path1",
> method = METHOD.GET,
> permission = READ)
>   public void call(SolrQueryRequest req, SolrQueryResponse rsp){
> rsp.add("myplugin.version", "2.0");
>   }
> }
> {code}
> This plugin will be accessible on all nodes at 
> {{/api/some-path-prefix/path1}}. It's possible to add more methods at 
> different paths. Ensure that all paths start with {{$path-prefix}} because 
> that is the prefix in which the plugin is registered with. So 
> {{/some-path-prefix/path2}} , {{/some-path-prefix/my/deeply/nested/path}} are 
> all valid paths. 
> It's possible that the user chooses to register the plugin with a different 
> name. In that case , use a template variable as follows in paths 
> {{/cluster/some/other/path}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org