I probably should have read the bit about concurrency on
http://www.sqlite.org/whentouse.html huh :-)
Although in my defense, my need for write concurrency is new.
I do wonder if 2 DB's will work well.


On Fri, Jul 25, 2014 at 1:58 PM, Tom Spencer-Smith <t...@meanfox.com> wrote:

>
> This seems like a really major difference to MySQL.
> MySQL with InnoDB allows concurrent writes to different rows in the same
> table.
> SQLite doesn't even allow concurrent writes to the same DB.
> So MySQL has write concurrency, SQLite does not. Guess that's what I'm
> learning here. Maybe I should consider MySQL before considering NoSQL.
>
>
> On Fri, Jul 25, 2014 at 10:49 AM, Tom Spencer-Smith <t...@meanfox.com>
> wrote:
>
>>
>> Thanks guys, I have already tried WAL and it does speed things up, but I
>> still need the daily processing to be done asynchronously. The computations
>> are complex, involving around 16 inputs from the player table and resulting
>> in 8 outputs. This is core to the game and not a simple score leaderboard.
>> So my options appear to be:
>>
>> 1. Hope that someone addresses my other thread about async I/O not
>> working for me
>> 2. Create my own mechanism for asynchronous DB transactions
>> 3. Deal with writes that fail due to BUSY - just handle the critical
>> ones, drop the others
>> 4. Experiment with using a separate DB for the leaderboard results, since
>> a separate table won't work
>> 5. Switch to NoSQL
>> 6. Look at the feasibility of holding results in memory and incrementally
>> injecting them into the player table
>> 7. Some other ideas?
>>
>> Cheers
>>
>> Tom
>>
>>
>> On Fri, Jul 25, 2014 at 7:13 AM, Simon Slavin-3 [via SQLite] <
>> ml-node+s1065341n76956...@n5.nabble.com> wrote:
>>
>>>
>>> On 24 Jul 2014, at 3:21pm, Tom <[hidden email]
>>> <http://user/SendEmail.jtp?type=node&node=76956&i=0>> wrote:
>>>
>>> > My application presently does all the DB operations on the main
>>> thread. But
>>> > once a day I need it do the player leaderboards, which could be 500K
>>> players
>>> > or so, hence several minutes. I can't have the main thread blocking
>>> for any
>>> > significant length of time - a second or so at most. Hence my desire
>>> to do
>>> > that one long operation in a separate thread and not have other DB
>>> writes
>>> > block.
>>>
>>> Even 500K players shouldn't be taking SQLite "a few minutes" unless
>>> there are no good indexes to use.  Are the scores saved in your player
>>> table ?  Do you have indexes suitable for the commands you are executing ?
>>>
>>> > I don't suppose temporary tables would make any difference? I.e. use a
>>> > temporary table for the LB results. Would that allow concurrent
>>> writes? (to
>>> > temporary table, and to normal table, from different threads).
>>>
>>> It still won't do what you want.  Dr Hipp's suggestion of WAL mode is
>>> probably your best bed.  With this you can have many readers and one writer
>>> all working at the same time.
>>>
>>> > What about using 2 databases?
>>>
>>> It would probably be better to try figuring out good SELECTs and indexes
>>> first.
>>>
>>> Simon.
>>> _______________________________________________
>>> sqlite-users mailing list
>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=76956&i=1>
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>>
>>> ------------------------------
>>>  If you reply to this email, your message will be added to the
>>> discussion below:
>>>
>>> http://sqlite.1065341.n5.nabble.com/Does-SQLite-lock-the-entire-DB-for-writes-or-lock-by-table-tp76921p76956.html
>>>  To unsubscribe from Does SQLite lock the entire DB for writes, or lock
>>> by table?, click here
>>> <http://sqlite.1065341.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=76921&code=dG9tQG1lYW5mb3guY29tfDc2OTIxfDg0MjQ3NTc4OQ==>
>>> .
>>> NAML
>>> <http://sqlite.1065341.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>>
>>
>>
>




--
View this message in context: 
http://sqlite.1065341.n5.nabble.com/Does-SQLite-lock-the-entire-DB-for-writes-or-lock-by-table-tp76921p76963.html
Sent from the SQLite mailing list archive at Nabble.com.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to