On 13 May 2018, at 11:50am, Techno Magos <technoma...@googlemail.com> wrote:

> So, memory sqlite is not really usable with multiple threads (readers).
> While one might expect  that multiple readers of *memory *content could
> scale even better than with file content.
> 
> Can this restriction be lifted?

It's not a pointless restriction.  It's how computers work.

A memory bus cannot respond to two requests for memory at once.  It has a set 
of address lines.  You put the address you require on those lines.  You then 
send the "read that address" signal.  The memory bus goes to fetch the data 
from that address, puts whatever it finds on the data lines, then signals 
"completed".

Having multiple processors speeds things up only if all you're doing is 
processing.  When two threads need to read data from the same piece of memory 
they have to queue up to make requests for data.  You may be better off if each 
process has its own memory.

[above is simplified for clarity]

See what happens if you stop using shared cache mode.  Also, if all your 
threads are merely reading, not writing, make sure they're using a connection 
(or one connection per thread) which was opened that way.  That allows SQLite 
to use lots of internal tricks.

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to