Hi,

I am running a service that creates some snapshot databases (plocal). 
I noticed a constant increase in the memory usage and breaks with OOM after 
some point. There other issues in the application which I am working on but 
also found some related to DB.

To simulate the behavior, I tried to create 1000 dbs from a 4MB JSON file. 
The JSON file is deserialized once to java object and same objects are used 
to create all the database instances.
I have a threadpool of size 5 i.e. 5 databases are created in parallel. I 
do not see an OOM in the test app but almost froze after 380 instances.
Tests are run using 512 heap size to reproduce the issue early.

I am using OPartitionedDatabasePool and closing the pool after each 
database instance is created and data is written.
However pool.close does not close the storage, also WAL threads and Cache 
flush threads are retained for each instance even though those threads are 
not working much.
Storages are closed at jvm shutdown for performance reasons and not when DB 
instance is not in use.

The heap usage is growing constantly for each database instance created. 
How can I optimize this?
I would assume the application should behave more or less same as at a time 
it is working only with 5 instances even though it has already created 300 
instances.

Also I am getting "max number of files open" in some linux flavors and had 
to override the max files open limit. 

*Below is the graphs from visualvm*

First 5 instances

<https://lh3.googleusercontent.com/-PA9IcVmGjy8/VdyC1g7yijI/AAAAAAAAAck/bolFqekEG4c/s1600/at5instances.png>

50 instances

<https://lh3.googleusercontent.com/-4i2YmajZzpw/VdyDHpyMjrI/AAAAAAAAAcs/DkKTyziPeNs/s1600/at50instances.png>

350 Instances

<https://lh3.googleusercontent.com/-sVtrYF9u4ak/VdyDKFwmhJI/AAAAAAAAAc0/b07vsBXuIOc/s1600/at350instances.png>

Threads List at the point of 350 + instances. 2 Threads per instance.

<https://lh3.googleusercontent.com/-16gIIu8Gndo/VdyDMLHKIdI/AAAAAAAAAc8/r4rGy_RGH2U/s1600/threadsat350instances.png>

<https://lh3.googleusercontent.com/-hyEaDu5jRmo/VdyDOE3c0fI/AAAAAAAAAdE/f-uaDlxstEM/s1600/threadsat350instances1.png>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to