I found discussion about the problem here: https://github.com/h2database/h2database/issues/471
On Saturday, June 23, 2018 at 1:58:38 AM UTC+2, NateS wrote: > > This is happening again. Any ideas? > > On Tuesday, May 23, 2017 at 4:15:23 PM UTC+2, NateS wrote: >> >> I've written an OSS project called Clippy which stores clipboard history >> in an embedded H2 database: >> https://github.com/EsotericSoftware/clippy/ >> >> I'm seeing the Clippy process sometimes causes CPU usage for long periods >> of time. It jumps between 1% and 20% on a 12 core processor and this >> continues for hours and hours. I captured stacktraces using jstack have >> have attached one below [1]. It appears that MVStore compactRewrite is the >> culprit. >> >> My H2 version is 1.4.192. I will update to the latest, but I wanted to >> report this now since I don't know how long it will take before I see the >> issue again. My db file is 590 MB and has 83,341 rows. The schema is >> simple, just 3 columns: >> id INTEGER IDENTITY >> text VARCHAR_IGNORECASE NOT NULL >> snip VARCHAR_IGNORECASE(2048) NOT NULL >> >> I have 3 indexes: >> id DESC >> snip >> text >> >> The data is like: >> MAX(LENGTH(text)) == 995,797 >> AVG(LENGTH(text)) == 783 >> >> FWIW, I use "SET LOG 0" to disable the transaction log, as it seems >> unnecessary for my app's usage. >> >> Is there anything I can do to reduce MVStore compactRewrite CPU usage? I >> don't mind it happening occasionally, but I'm seeing it happen for 12+ >> hours, until I restart my app. Even if the background processing doesn't >> affect write speeds, it's not ideal for an app such as mine which is >> intended to run in the background on user workstations rather than servers. >> Restarting my app seems to help for some time. If it shouldn't be running >> constantly, is there something I can do to collect information about the >> problem? Unfortunately I can't send the database file, as it may contain >> personal information. >> >> Thanks! >> -Nate >> >> [1]: jstack stacktrace: >> "MVStore background writer nio:C:/path/db/db.mv.db" daemon prio=6 >> tid=0x000000000ab6e800 nid=0x2148 runnable [0x000000001192d000] >> java.lang.Thread.State: RUNNABLE >> at >> org.h2.mvstore.db.ValueDataType.readString(ValueDataType.java:637) >> at >> org.h2.mvstore.db.ValueDataType.readValue(ValueDataType.java:532) >> at >> org.h2.mvstore.db.ValueDataType.readValue(ValueDataType.java:572) >> at org.h2.mvstore.db.ValueDataType.read(ValueDataType.java:172) >> at org.h2.mvstore.db.ValueDataType.read(ValueDataType.java:159) >> at org.h2.mvstore.Page.read(Page.java:708) >> at org.h2.mvstore.Page.read(Page.java:195) >> at org.h2.mvstore.MVStore.readPage(MVStore.java:1944) >> at org.h2.mvstore.MVMap.readPage(MVMap.java:736) >> at org.h2.mvstore.Page.getChildPage(Page.java:217) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:823) >> at org.h2.mvstore.MVMap.rewrite(MVMap.java:782) >> at org.h2.mvstore.MVStore.compactRewrite(MVStore.java:1910) >> at org.h2.mvstore.MVStore.compact(MVStore.java:1802) >> - locked <0x00000000f00a2c18> (a java.lang.Object) >> at org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2504) >> at >> org.h2.mvstore.MVStore$BackgroundWriterThread.run(MVStore.java:2694) >> > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
