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.

Reply via email to