Am 12.08.2010 19:56, schrieb Felix Rublack:
Am 12.08.2010 17:34, schrieb Konrad Meier:
Today I did some time measurements in the db.c (Debug log attached).
I think the problem is that that the insert-query of the counter values are blocking the program.
This is a "feature" of SQLite. After each INSERT, that is not part of an transaction, the database is writen to disk using fsync(). This leads to a huge performance penalty. Disabling this behaviour using PRAGMA synchronous = OFF at startup is IHMO fairly easy way to solve this problem.
Thanks.
Setting "PRAGMA synchronous = 0" solved the problem. But in case of a power failure the database may be corrupt. At the moment this is a acceptable risk for me since i am only running a test network at the university with no guaranteed service.
A different solution would be to to use BEGIN and COMMIT for a transaction like inserting the counter values.
Regard Konrad