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