Also note that the mvcc option in h2 is still in beta, so there might still
be bugs lurking in edge cases.

On Sunday, 27 November 2011, Jason <[email protected]> wrote:
> I have found a temporary fix to the long start up time: simply connect
> to the database with MVCC off. This action seems to clear the
> transaction log after an hour or two. Any re-opening of the database
> after this initial connection will be nice and quick. In theory one
> could connect with MVCC on, but even with my heap set to 1GB my test
> application was running out of memory because it was loading the
> entire transaction log into memory.
>
> I am still curious on how this log gets so large. I attempted to
> reproduce the issue with a mini example and observed that if there is
> an INSERT with no commit, it is automatically rolled back if:
> * The client application exists (I am guessing that the rollback is
> part of the connection cleanup in the database server).
> * The database is shut down gracefully. There appears to be a shutdown
> hook that rolls back uncommitted transactions on shutdown.
>
> The only way I was able to get some items into the transaction log by
> doing a kill -9 on the H2 server process while INSERTS were being
> executed.
>
> I also had suspicions similar to Noels. My first suspicion was there
> there might also be a connection leak, I also examined the code
> looking for missed commit statements but have yet to find any. The
> exception handling in my clients persistence code is not the best, so
> perhaps some more research will turn up some conditions where a commit
> or rollback would be missed.
>
>
> On Nov 25, 3:58 am, Noel Grandin <[email protected]> wrote:
>> Both of those problems sound like one of more of the connections are not
calling commit() after inserting data into the
>> database, holding the transaction open.
>>
>>
>>
>>
>>
>>
>>
>> Jason wrote:
>> > I currently use H2 for a logging/monitoring application which runs
>> > 24x7 and I am experiencing two issues:
>>
>> > 1) The size of the database constantly grows, and once the size hits
>> > around 250MB it refuses to accept new connections. If the database is
>> > shut down and re-opened the size of the database shrinks and it
>> > becomes responsive again.
>>
>> > 2) My second issue is that of a long start up time. One sites h2
>> > database takes about one hour to open. I enabled logging and it
>> > appears that the database is replaying every transaction since it was
>> > created. I see lots of lines like the following:
>>
>> > 11-23 17:35:16 pageStore: log redo - table:175 key:34191721
>> > ...
>> > 11-23 17:41:19 pageStore: updateRecord page[89022] b-tree leaf table:
>> > 13 entries:17
>> > 11-23 17:41:20 index: T10_DATA remove ( /* key:5977917 */ 5977917,
>> > '0102D2918A90517BB06', 'Intel(R) ICH10 Family USB Universal Host
>> > Controller - 3A68', 'Universal Serial Bus controllers', '9.0.0.1005',
>> > 'Intel', '2-25-2008', 'usbuhci.sys', 'Enabled')
>> > 11-23 17:41:20 pageStore: log redo - table:10 key:5977918
>>
>> > My theory is that these two issues have something to do with MVCC. The
>> > documentation states that if one enables MVCC then the transaction log
>> > must fit in memory. Is memory here the heap space? What about disk?
>> > One of my theories here is that the database is constantly growing as
>> > a result of the transaction log being persisted in addition to the
>> > data.
>
> --
> 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.
>
>

-- 
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