Hi Jim,

How does the indexing performs if you say just run a single webapp node?

Chetan Mehrotra


On Sat, Dec 5, 2015 at 7:18 AM, Jim.Tully <[email protected]> wrote:
> We are using Oak embedded in a web application, and are now experiencing 
> significant delays in async indexing.  New nodes added are sometimes not 
> available by query for up to an hour.  I’m hoping you can identify areas I 
> might explore to improve this performance.
>
> We have multiple instances of the web application running with the same 
> Mongodb cluster connected via SSL.  Our Repository constructor is:
>
>
>
> ns = new DocumentMK.Builder().setMongoDB(createMongoDB()).getNodeStore();
>
>
> Oak oak = new Oak(ns);
>
>
> LuceneIndexProvider provider = new LuceneIndexProvider();
>
> Jcr jcr = new Jcr(oak).with((QueryIndexProvider) provider).with((Observer) 
> provider)
>
>         .with(new LuceneIndexEditorProvider()).withAsyncIndexing();
>
> repository = jcr.createRepository();
>
>
> The web application creates the repository at start up, and disposes of it as 
> shutdown.  We have no observers registered at all, but do have 6 lucene 
> indexes defined.  The index that is currently giving me heartburn looks like 
> below.  Where would I start to find what is dragging performance down so 
> drastically?
>
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <sv:node xmlns:sv="http://www.jcp.org/jcr/sv/1.0"; sv:name="PageIndex">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>oak:QueryIndexDefinition</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="compatVersion" sv:type="Long">
>
> <sv:value>2</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="compatMode" sv:type="Long">
>
> <sv:value>2</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="type" sv:type="String">
>
> <sv:value>lucene</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="async" sv:type="String">
>
> <sv:value>async</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="name" sv:type="String">
>
> <sv:value>PageIndex</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="indexPath" sv:type="String">
>
> <sv:value>/pages/oak:index/PageIndex</sv:value>
>
> </sv:property>
>
>
>
> <sv:node sv:name="indexRules" sv:type="Name">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:node sv:name="tgt:page">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:node sv:name="properties" sv:type="Name">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:node sv:name="jcr:activationDate">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="type" sv:type="String">
>
> <sv:value>Date</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="ordered" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="propertyIndex" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> </sv:node>
>
> <sv:node sv:name="jcr:deactivationDate">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="type" sv:type="String">
>
> <sv:value>Date</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="ordered" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="propertyIndex" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> </sv:node>
>
> <sv:node sv:name="jcr:status">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="propertyIndex" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> </sv:node>
>
> <sv:node sv:name="presentation">
>
> <sv:property sv:name="jcr:primaryType" sv:type="Name">
>
> <sv:value>nt:unstructured</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="propertyIndex" sv:type="Boolean">
>
> <sv:value>true</sv:value>
>
> </sv:property>
>
> </sv:node>
>
> </sv:node>
>
> </sv:node>
>
> </sv:node>
>
> <sv:node sv:name="analyzers">
>
> <sv:node sv:name="default">
>
> <sv:property sv:name="class" sv:type="String">
>
> <sv:value>org.apache.lucene.analysis.standard.StandardAnalyzer</sv:value>
>
> </sv:property>
>
> <sv:property sv:name="luceneMatchVersion" sv:type="String">
>
> <sv:value>LUCENE_47</sv:value>
>
> </sv:property>
>
> <sv:node sv:name="tokenizer">
>
> <sv:property sv:name="name" sv:type="String">
>
> <sv:value>Standard</sv:value>
>
> </sv:property>
>
> </sv:node>
>
> </sv:node>
>
> </sv:node>
>
> </sv:node>
>
> Thanks,
>
> Jim
>

Reply via email to