Hello,

I have a largish database - about 20GB. At some point, inserting rows
into it has become abysmally slow. I'm noticing that the bulk of the
time is spent in the method LogSystem.checkpoint(). I also see many
log files being created every second, a typical listing the database
files looks like this:

-rw-r--r-- 1 frank frank      262144 2009-02-12 20:47 ses.
22356.temp.db
-rw-r--r-- 1 frank frank    38584320 2009-02-13 13:51 ses.38397.log.db
-rw-r--r-- 1 frank frank    38584320 2009-02-13 13:51 ses.38398.log.db
-rw-r--r-- 1 frank frank    38584320 2009-02-13 13:51 ses.38399.log.db
-rw-r--r-- 1 frank frank    38584320 2009-02-13 13:51 ses.38400.log.db
-rw-r--r-- 1 frank frank    38584320 2009-02-13 13:51 ses.38401.log.db
-rw-r--r-- 1 frank frank          96 2009-02-13 13:51 ses.38402.log.db
-rw-r--r-- 1 frank frank 20166213680 2009-02-13 13:51 ses.data.db
-rw-r--r-- 1 frank frank  2751463472 2009-02-13 13:51 ses.index.db
-rw-r--r-- 1 frank frank          99 2009-02-12 20:47 ses.lock.db
-rw-r--r-- 1 frank frank         385 2009-02-12 20:47 ses.trace.db

The log files change all the time though. I am using the stable
version (1.0.79). Any suggestions? Is the disk summary so big now that
it saves a new log for every statement? I attach a typical stack trace
below.

        at java.util.Arrays.copyOf(Arrays.java:2786)
        at java.io.ByteArrayOutputStream.write
(ByteArrayOutputStream.java:71)
        - locked <0xbd654f68> (a java.io.ByteArrayOutputStream)
        at java.io.DataOutputStream.write(DataOutputStream.java:71)
        - locked <0xbd654f78> (a java.io.DataOutputStream)
        at org.h2.store.DiskFile.getSummary(DiskFile.java:224)
        - locked <0xb6a56d68> (a org.h2.engine.Database)
        at org.h2.log.LogSystem.writeSummary(LogSystem.java:586)
        at org.h2.log.LogSystem.checkpoint(LogSystem.java:561)
        - locked <0xb6a56d68> (a org.h2.engine.Database)
        at org.h2.log.LogSystem.add(LogSystem.java:541)
        - locked <0xb6a56d68> (a org.h2.engine.Database)
        at org.h2.store.DiskFile.addRecord(DiskFile.java:1031)
        - locked <0xb6a56d68> (a org.h2.engine.Database)
        at org.h2.store.Storage.addRecord(Storage.java:190)
        at org.h2.index.BtreeIndex.updatePage(BtreeIndex.java:143)
        at org.h2.index.BtreeLeaf.add(BtreeLeaf.java:86)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeNode.add(BtreeNode.java:100)
        at org.h2.index.BtreeIndex.add(BtreeIndex.java:221)
        at org.h2.table.TableData.addRow(TableData.java:107)
        at org.h2.command.dml.Insert.update(Insert.java:96)
        at org.h2.command.CommandContainer.update
(CommandContainer.java:69)
        at org.h2.command.Command.executeUpdate(Command.java:206)
        - locked <0xb6a56d68> (a org.h2.engine.Database)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal
(JdbcPreparedStatement.java:137)
        - locked <0xb78a9740> (a org.h2.engine.Session)
        at org.h2.jdbc.JdbcPreparedStatement.executeBatch
(JdbcPreparedStatement.java:1049)
 ....

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