On Saturday, April 6, 2013 3:29:24 PM UTC+2, Vasile Ermicioi wrote:
>
> Don't really know where you saw the 100k user statement....
>
> http://www.sqlite.org/whentouse.html
>
 
Make a simple app (even with "less bloated" frameworks) that writes to a db 
every time a user hits a page. I bet I can lock the db in no time.
The problem is not "how many users are hitting the website" but "how many 
users are hitting the website and trying to write to the db".
As far as read is concerned, I never had a "database locked" problem with 
SQLite, WAL active or not.

>
> editing a single table from multiple users ... no.
>
> with WAL enabled the response is YES!
>
>  
Nope. It helps for sure, but doesn't prevent locking in an "universal" way.

Test it yourself, open one shell ...
sqlite3 storage.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table m(col_a integer);
sqlite> insert into m values(1);
sqlite> PRAGMA journal_mode=WAL;
wal
sqlite> insert into m values(1);
sqlite> select * from m
   ...> ;
1
1
3
ok, now open another shell

sqlite3 storage.db 
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> insert into m values(3);
sqlite> BEGIN TRANSACTION;
sqlite> insert into m values(3);
sqlite> select * from m;
1
1
3
3
sqlite> 

now, back to the previous one
sqlite> insert into m values(1);
Error: database is locked


voilĂ , WAL active, but locked database anyway.

tl;dr : You can't have an open transaction that made writes to the db and 
contemporarily read the database.

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to