Hello,

I'm using DIH to index the data and the structure of the DIH is like below for 
solr core:

<entity>
16 child entities
</entity>

During indexing, since the number of requests being made to database was 
high(to process one document 17 queries) and was utilizing most of connections 
of database thereby blocking our web application.

To tackle it, we implemented SORTEDMAPBACKEDCACHE with cacheImpl parameter to 
reduce the number of requests to database.

<entity name="parententity" pk="PQRS"
                                                query="SELECT 
PQRS,PARENT_KEY,L,M,N,O FROM DEF"
                                                >

                                                <field name="L" column="L" />
                                                <field name="M" column="M" />
                                                <field name="N" column="N" />

                                                <entity name="childentity1" 
pk="PQRS"
                                                                query="SELECT 
A,B,C,D,E,F,CHILD_KEY,MODIFY_TS FROM ABC ORDER BY MODIFY_TS DESC"
                                                                
processor="SqlEntityProcessor" cacheImpl="SortedMapBackedCache" 
where="CHILD_KEY=parententity.PARENT_KEY"
                                                                >

                                                                <field name="A" 
column="A" />
                                                                <field name="B" 
column="B" />
                                                </entity>
                                                .
                                                .
                                                .
                                                .
                                                .
                                                .
                                                .
</entity>

We have 8GB Physical memory system(RAM) with 5GB of it allocated to JVM and 
when we do full-import, only 17 requests are made to database. However, it is 
shooting up memory consumption and is making the JVM out of memory. Out of 
memory is happening depending on the number of records each entity is bringing 
in to the memory. For Dev and QA environments, the above memory config is 
sufficient. When we move to production, we have to increase the memory to 
around 16GB of RAM and 12 GB of JVM.

Is there any logic/configurations to limit the memory usage?

Thanks and Regards,
Srinivas Kashyap

________________________________
DISCLAIMER:
E-mails and attachments from Bamboo Rose, LLC are confidential.
If you are not the intended recipient, please notify the sender immediately by 
replying to the e-mail, and then delete it without making copies or using it in 
any way.
No representation is made that this email or any attachments are free of 
viruses. Virus scanning is recommended and is the responsibility of the 
recipient.

Reply via email to