- Thread starter
- #11
Hi Lehmnden,
thanks a lot for your test!
The cpu usage is something I can't reproduce - for me it is about 20% during the import (having a core i5). Reducing the thread priority is something I can't do here with the database plugin. This would have to be done in the ImportWorkerThread.
But nevertheless, the freezes and slow responding in v0.1 resulted from write locks blocking reads to the database. The ImportWorker does a lot of writes and when you are browsing through your GUI in the client, there are reads to the database. In v0.2, this should be much improved due to the use of "WAL" (see above).
Unfortunately, the v0.1 database file is not compatible with v0.2 (because I increased the page size and now store GUIDs as binaries instead of strings).
Regarding the idea of having only one connection with multiple transactions mentioned above, this is neither possible nor necessary. If you set "pooling=true" in the Connection string (was already contained in v0.2), closing a connection does not "really close" the database file. The connection is just given back to the pool and reused later. So no need for improvement there.
What I finally did is a test with pagesize=8192 (explanation see above). But this didn't bring any improvement for me (import time was 38 min instead of 36 min), so from my Point of view v0.2 should be final unless someone reports a bug I really would like to have a test resulting in a database with a size > 2GB. I already added all the media files I could think of, but I still can't get past the 2 GB with my db file. Anyone of the MP1-@Testers willing to help out here?
Michael
thanks a lot for your test!
The cpu usage is something I can't reproduce - for me it is about 20% during the import (having a core i5). Reducing the thread priority is something I can't do here with the database plugin. This would have to be done in the ImportWorkerThread.
But nevertheless, the freezes and slow responding in v0.1 resulted from write locks blocking reads to the database. The ImportWorker does a lot of writes and when you are browsing through your GUI in the client, there are reads to the database. In v0.2, this should be much improved due to the use of "WAL" (see above).
Unfortunately, the v0.1 database file is not compatible with v0.2 (because I increased the page size and now store GUIDs as binaries instead of strings).
Regarding the idea of having only one connection with multiple transactions mentioned above, this is neither possible nor necessary. If you set "pooling=true" in the Connection string (was already contained in v0.2), closing a connection does not "really close" the database file. The connection is just given back to the pool and reused later. So no need for improvement there.
What I finally did is a test with pagesize=8192 (explanation see above). But this didn't bring any improvement for me (import time was 38 min instead of 36 min), so from my Point of view v0.2 should be final unless someone reports a bug I really would like to have a test resulting in a database with a size > 2GB. I already added all the media files I could think of, but I still can't get past the 2 GB with my db file. Anyone of the MP1-@Testers willing to help out here?
Michael