http://www.perlmonks.org?node_id=1067216


in reply to Threads and DBD::SQLite?

  1. How can I turn on the SQLite "Shared-Cache Mode" from DBI or DBD?

    Use a connect string of the form 'dbi:SQLite:dbname=file:memdb2?mode=memory&cache=shared'.

  2. Does it work as expected, if I fork off a thread, which opens SQLite shared memory? (Have anyone done this craziness with Perl before?)

    What are you expecting?

    (Kinda, but there are some issues. At least on windows.)

    For a start, retrieving a given number of records from a single thread&connection is nearly 2 orders of magnitude quicker than retrieving those same records via a connection made via a single connection in a separate thread.

    Running multiple clients in 2 separate threads cuts the time almost in half; and with 4 almost by 4; but it is still much faster to use a single thread/connection.

    This is true despite having deployed every speed-up pragma and option I can find.

  3. What is the recommended tcp/ip server module on CPAN for threaded programs?

    Personally, I don't use a module for tcp servers.

    Writing a threaded server that does what I need is pretty simple. Making someone else's implementation (if you can find one) do what I need it to do is always harder.

A few questions: What OS are you targeting? What does your data (schema) look like? What do your queries look like?


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.