We have application which uses in memory H2 database. We sync the data
from other database periodically (once in 30 min) and maintain the
state in memory. The problem was memory was ballooning for every sync
operation. I profiled with JProbe and 8 out of top 10 objects belong
to H2 only

-------------------------------------------------------------------------------------------------------------
Operation:                Object count
Heap(MB)               H2 db growth
---------------------------------------------------------------------------------------------------------------
First sync                2684561
122                        78%
Second sync            5417943
229                        88%
Third sync                 7750458
346                        87%
---------------------------------------------------------------------------------------------------------------

The run time object counts are.


---------------------------------------------------------------------------------------------------
Name                               Heap Count     Heap Memory (Bytes)
--------------------------------------------------------------------------------------------------
org.h2.index.TreeNode      3,350,611      107,219,552
org.h2.result.Row                  1,298,462      83,101,568
org.h2.value.Value [ ]             1,126,162      70,576,392
org.h2.value.ValueInt              850,294                13,604,704
char [ ]                                   237,093                26,776,296
java.lang.String                           236,211                5,669,064
java.util.HashMap$Entry    168,079                4,033,896
org.h2.value.ValueString           104,935                1,678,960
org.h2.value.ValueLong     70,135                 1,122,160
org.h2.log.UndoLogRecord           69,795                 1,675,080
java.lang.ref.WeakReference   54,223              1,301,352
java.lang.ref.SoftReference         41,688                1,334,016
org.h2.index.TreeCursor    37,198                 1,190,336

I also used the H2 Function MEMORY_USED which calls  collectGarbage()
internally. That didn't help either. Any ideas will be appreciated to
reduce the memory footprint.

Thanks,
Chandra.




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to