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

Richard Goodman commented on SOLR-14325:
----------------------------------------

Hi [~dsmiley], 

I've uploaded my patch of what I have so far _(this is on a 7.7.2 branch)_. I 
found the following with this:

* Core admin api was significantly quicker when replicas were recovering. 
Previously the call would take >=8 seconds when testing with cores of this 
size, where as now it was around 1 second. 
* The index information is, however, blank until the replica has fully 
recovered _(so basically as if {{&indexInfo=false}} was in the call ... 

Below is some stats / findings when I did this _(had to remove any "sensitive" 
information)_:

{code:title=node0 core admin pre}
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-pre

real    0m1.080s
user    0m0.020s
sys     0m0.004s
{code}

{code:title=node1 core admin pre}
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-pre

real    0m0.413s
user    0m0.016s
sys     0m0.012s
{code}

---

{code:title=node0 core admin recovering}
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during

real    0m1.514s
user    0m0.012s
sys     0m0.012s
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during-2

real    0m1.385s
user    0m0.008s
sys     0m0.004s
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during-3

real    0m1.580s
user    0m0.016s
sys     0m0.000s
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during-4

real    0m1.112s
user    0m0.004s
sys     0m0.008s
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during-5

real    0m1.058s
user    0m0.008s
sys     0m0.004s
root @ rich-solr0.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during-6

real    0m1.115s
user    0m0.012s
sys     0m0.008s
{code}

{code:title=node1 core admin recovering}
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-during

real    0m0.320s
user    0m0.008s
sys     0m0.008s
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-durin2

real    0m0.277s
user    0m0.004s
sys     0m0.008s
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-durin3

real    0m0.339s
user    0m0.008s
sys     0m0.012s
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-durin5

real    0m0.378s
user    0m0.008s
sys     0m0.016s
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-durin4

real    0m0.338s
user    0m0.008s
sys     0m0.008s
root @ rich-solr1.devserver0.net ~/cat-test # time curl -s 
"http://localhost:8080/solr/admin/cores"; > new-core-admin-timeout-durin6

real    0m0.348s
user    0m0.008s
sys     0m0.000s
{code}

---

{code:title=during recovery}
    "a_collection_shard4_replica_n43":{
      "name":"a_collection_shard4_replica_n43",
      
"instanceDir":"/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43",
      
"dataDir":"/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43/data/",
      "config":"solrconfig.xml",
      "schema":"schema.xml",
      "startTime":"2020-03-17T09:45:04.310Z",
      "uptime":6609,
      "lastPublished":"recovering",
      "configVersion":2,
      "cloud":{
        "collection":"a_collection",
        "shard":"shard4",
        "replica":"core_node44"},
      "index":{
        "numDocs":0,
        "maxDoc":0,
        "deletedDocs":0,
        "indexHeapUsageBytes":0,
        "version":2,
        "segmentCount":0,
        "current":true,
        "hasDeletions":false,
        
"directory":"org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(MMapDirectory@/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43/data/index
 lockFactory=org.apache.lucene.store.NativeFSLockFactory@3875d1fc; 
maxCacheMB=48.0 maxMergeSizeMB=4.0)",
        "segmentsFile":"segments_1",
        "segmentsFileSizeInBytes":69,
        "userData":{},
        "sizeInBytes":69,
        "size":"69 bytes"}},
{code}

---

{code:title=replica info after recovery}
    "a_collection_shard4_replica_n43":{
      "name":"a_collection_shard4_replica_n43",
      
"instanceDir":"/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43",
      
"dataDir":"/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43/data/",
      "config":"solrconfig.xml",
      "schema":"schema.xml",
      "startTime":"2020-03-17T09:45:04.310Z",
      "uptime":19481,
      "lastPublished":"active",
      "configVersion":2,
      "cloud":{
        "collection":"a_collection",
        "shard":"shard4",
        "replica":"core_node44"},
      "index":{
        "numDocs":401295,
        "maxDoc":419935,
        "deletedDocs":18640,
        "indexHeapUsageBytes":5014066,
        "version":3535595,
        "segmentCount":23,
        "current":true,
        "hasDeletions":true,
        
"directory":"org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(MMapDirectory@/data/solr/solrcloud-rich_solr0-0/data/a_collection_shard4_replica_n43/data/index
 lockFactory=org.apache.lucene.store.NativeFSLockFactory@3875d1fc; 
maxCacheMB=48.0 maxMergeSizeMB=4.0)",
        "segmentsFile":"segments_qek",
        "segmentsFileSizeInBytes":1706,
        "userData":{
          "commitCommandVer":"1655904180394524672",
          "commitTimeMSec":"1579193287273"},
        "lastModified":"2020-01-16T16:48:07.273Z",
        "sizeInBytes":1070272747,
        "size":"1,020.69 MB"}},
{code}

---

I'd be keen to see what you think of the patch so far, and if there would be a 
way to get index information from a directoryReader?

> Core status could be improved to not require an IndexSearcher
> -------------------------------------------------------------
>
>                 Key: SOLR-14325
>                 URL: https://issues.apache.org/jira/browse/SOLR-14325
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: David Smiley
>            Priority: Major
>         Attachments: SOLR-14325.patch
>
>
> When the core status is told to request "indexInfo", it currently grabs the 
> SolrIndexSearcher but only to grab the Directory.  SolrCore.getIndexSize also 
> only requires the Directory.  By insisting on a SolrIndexSearcher, we 
> potentially block for awhile if the core is in recovery since there is no 
> SolrIndexSearcher.
> [https://lists.apache.org/thread.html/r076218c964e9bd6ed0a53133be9170c3cf36cc874c1b4652120db417%40%3Cdev.lucene.apache.org%3E]
> It'd be nice to have a solution that conditionally used the Directory of the 
> SolrIndexSearcher only if it's present so that we don't waste time creating 
> one either.



--
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

Reply via email to