Hi All,

I have been trying to resolve a couple of our queries which time out every
couple of hours. I believe this is down to the number of concurrent
requests. Things evaluated/investigated:


   - I turned on the debug logs to see if there are any deadlocks
      - I couldn't find any traces of locks
   - Next I profiled my query and looks like there are 234 expressions and
   normally it returns under 0.00738 secs
   - Next I did try query-trace the output looks like:

xdmp:value("(for $i in cts:search(/record[.//npg:Article],
$final-query, ('u...")
> Analyzing path for search: fn:collection()/record[descendant::npg:Article]
> Step 1 is searchable: fn:collection()
> Step 2 is searchable: record[descendant::npg:Article]
> Path is fully searchable.
> Gathering constraints.
> Step 2 predicate 1 contributed 1 constraint: descendant::npg:Article
> Step 2 predicate 1 contributed 2 constraints: descendant::npg:Article
> Step 2 contributed 3 constraints: record[descendant::npg:Article]
> Comparison contributed string scatter value constraint: xdmp:collection = 
> ("http://ns.nature.com/graphs/articles-labanimal";, "lab_animal", 
> "http://ns.nature.com/graphs/articles-nature";, ...)
> Search query contributed 1 constraint: 
> cts:and-query((cts:not-query(cts:or-query((), ()), 1), 
> cts:collection-query(("http://ns.nature.com/graphs/articles-labanimal";, 
> "lab_animal", "http://ns.nature.com/graphs/articles-nature";, 
> "journals_nature", "http://ns.nature.com/graphs/articles-palgrave";, 
> "journals_palgrave")), cts:or-query(cts:field-value-query("doi", 
> "10.1038/212441a0", ("lang=en"), 0), ()), cts:not-query(cts:or-query((), ()), 
> 1), cts:not-query(cts:or-query((), ()), 1), cts:not-query(cts:or-query((), 
> ()), 1)), ())
> Order by clause contributed 1 range ordering constraint for $i: order by 
> xs:date($i/descendant::prism:publicationDate) descending
> Ordering can be unfiltered.
> Executing search.
> Selected 1 fragment.
>
> *I dont see anything unsual with the output - no traces of unsearchable
 expressions and lack of indexes.*


   - I did try query-meters

<qm:query-meters
xsi:schemaLocation="http://marklogic.com/xdmp/query-meters
query-meters.xsd" xmlns:qm="http://marklogic.com/xdmp/query-meters";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>   <qm:elapsed-time>PT0.003874S</qm:elapsed-time>
>   <qm:requests>0</qm:requests>
>   <qm:list-cache-hits>150</qm:list-cache-hits>
>   <qm:list-cache-misses>0</qm:list-cache-misses>
>   <qm:in-memory-list-hits>0</qm:in-memory-list-hits>
>   <qm:triple-cache-hits>0</qm:triple-cache-hits>
>   <qm:triple-cache-misses>0</qm:triple-cache-misses>
>   <qm:triple-value-cache-hits>0</qm:triple-value-cache-hits>
>   <qm:triple-value-cache-misses>0</qm:triple-value-cache-misses>
>   <qm:expanded-tree-cache-hits>1</qm:expanded-tree-cache-hits>
>   <qm:expanded-tree-cache-misses>0</qm:expanded-tree-cache-misses>
>   <qm:compressed-tree-cache-hits>0</qm:compressed-tree-cache-hits>
>   <qm:compressed-tree-cache-misses>0</qm:compressed-tree-cache-misses>
>   <qm:in-memory-compressed-tree-hits>0</qm:in-memory-compressed-tree-hits>
>   <qm:value-cache-hits>3</qm:value-cache-hits>
>   *<qm:value-cache-misses>35</qm:value-cache-misses>*
>   <qm:regexp-cache-hits>1</qm:regexp-cache-hits>
>   <qm:regexp-cache-misses>1</qm:regexp-cache-misses>
>   <qm:link-cache-hits>0</qm:link-cache-hits>
>   <qm:link-cache-misses>0</qm:link-cache-misses>
>   <qm:filter-hits>0</qm:filter-hits>
>   <qm:filter-misses>0</qm:filter-misses>
>   <qm:fragments-added>0</qm:fragments-added>
>   <qm:fragments-deleted>0</qm:fragments-deleted>
>   <qm:fs-program-cache-hits>0</qm:fs-program-cache-hits>
>   <qm:fs-program-cache-misses>0</qm:fs-program-cache-misses>
>   <qm:db-program-cache-hits>0</qm:db-program-cache-hits>
>   <qm:db-program-cache-misses>0</qm:db-program-cache-misses>
>   <qm:env-program-cache-hits>0</qm:env-program-cache-hits>
>   <qm:env-program-cache-misses>0</qm:env-program-cache-misses>
>   
> <qm:fs-main-module-sequence-cache-hits>0</qm:fs-main-module-sequence-cache-hits>
>   
> <qm:fs-main-module-sequence-cache-misses>0</qm:fs-main-module-sequence-cache-misses>
>   
> <qm:db-main-module-sequence-cache-hits>0</qm:db-main-module-sequence-cache-hits>
>   
> <qm:db-main-module-sequence-cache-misses>0</qm:db-main-module-sequence-cache-misses>
>   <qm:fs-library-module-cache-hits>0</qm:fs-library-module-cache-hits>
>   <qm:fs-library-module-cache-misses>0</qm:fs-library-module-cache-misses>
>   <qm:db-library-module-cache-hits>0</qm:db-library-module-cache-hits>
>   <qm:db-library-module-cache-misses>0</qm:db-library-module-cache-misses>
>   <qm:fragments>
>     <qm:fragment>
>       <qm:root xmlns="">record</qm:root>
>       <qm:expanded-tree-cache-hits>1</qm:expanded-tree-cache-hits>
>       <qm:expanded-tree-cache-misses>0</qm:expanded-tree-cache-misses>
>     </qm:fragment>
>   </qm:fragments>
>   <qm:documents>
>     <qm:document>
>       <qm:uri>/n5061/xml/212441a0.xml</qm:uri>
>       <qm:expanded-tree-cache-hits>1</qm:expanded-tree-cache-hits>
>       <qm:expanded-tree-cache-misses>0</qm:expanded-tree-cache-misses>
>     </qm:document>
>   </qm:documents>
>   <qm:hosts>
>     <qm:host>
>       <qm:host-name>#removed#</qm:host-name>
>       <qm:round-trip-count>1</qm:round-trip-count>
>       <qm:round-trip-time>PT0.000921S</qm:round-trip-time>
>     </qm:host>
>     <qm:host>
>       <qm:host-name>#removed#</qm:host-name>
>       <qm:round-trip-count>1</qm:round-trip-count>
>       <qm:round-trip-time>PT0.000856S</qm:round-trip-time>
>     </qm:host>
>   </qm:hosts>
> </qm:query-meters>
>
>
The only thing that strikes me is that there are value cache misses, I dont
know if I can do anything for it or anything else I could try. I am running
out of ideas so it would be great if anyone can share some
thoughts/pointers.

Thanks,
Basavaraj Kalloli
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to