by Teknojnky » Thu May 07, 2009 3:09 pm
I think sqlite is just not very well suited for simultanious multi-user environment.
http://www.sqlite.org/whentouse.html
Client/Server Applications
If you have many client programs accessing a common database over a network, you should consider using a client/server database engine instead of SQLite. SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, the file locking logic of many network filesystems implementation contains bugs (on both Unix and Windows). If file locking does not work like it should, it might be possible for two or more client programs to modify the same part of the same database at the same time, resulting in database corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it.
A good rule of thumb is that you should avoid using SQLite in situations where the same database will be accessed simultaneously from many computers over a network filesystem.
What is hosting your database, a windows computer? a nas? a linux box?
If it is a nas, you may be able disable some peformance options regarding write caches/locking files.
From what I understand, the root problem is that whatever is hosting your database is not keeping up with file locking transactions from multiple systems.
Why this worked for you on 3.07 and not 3.1 I can not explain.
Worse case scenario, you re-install 3.07 over the existing 3.1 on all your machines and restore the last usable 3.07 database you have.
Maybe you should check all your mediamonkey.ini files have included:
I think sqlite is just not very well suited for simultanious multi-user environment.
http://www.sqlite.org/whentouse.html
[quote]Client/Server Applications
If you have many client programs accessing a common database over a network, you should consider using a client/server database engine instead of SQLite. SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, the file locking logic of many network filesystems implementation contains bugs (on both Unix and Windows). If file locking does not work like it should, it might be possible for two or more client programs to modify the same part of the same database at the same time, resulting in database corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it.
A good rule of thumb is that you should avoid using SQLite in situations where the same database will be accessed simultaneously from many computers over a network filesystem.
[/quote]
What is hosting your database, a windows computer? a nas? a linux box?
If it is a nas, you may be able disable some peformance options regarding write caches/locking files.
From what I understand, the root problem is that whatever is hosting your database is not keeping up with file locking transactions from multiple systems.
Why this worked for you on 3.07 and not 3.1 I can not explain.
Worse case scenario, you re-install 3.07 over the existing 3.1 on all your machines and restore the last usable 3.07 database you have.
Maybe you should check all your mediamonkey.ini files have included:
[code][System]
SQLiteSafety=2[/code]