My thoughts are that most programmers over use and abuse threading and I
love the simplicity of your database as it is.  Can't tell you how many C
projects that have almost failed because of threading and memory issues (til
I took over them and became Mr. Fix man).  First thing I did was pull out
all the over complexity.  I avoid threading as best I can.  For some reason
everyone equates being smart with being complex, I think it is just the
opposite.  Being able to solve the problem optimally with as much simplicity
as possible. 

We are putting finishing touches on a client server application for ship
late this year.  This application was originally slated to use SQL Server,
Oracle, or DB2, but just for grins we tested out Sqlite as the server
backend.  It worked great.  We are so pleased with it that we are not going
to ship with support for a large scale RDBMS.  Because of our tests we found
that realistically we don't need huge scalability and with hardware
continuing to get faster, Sqlite continues to get more scalable.  We are
doing thread synchronization at the data access layer which is well above
the database.  The system is just as fast as using the large scale except
MUCH easier to maintain with Sqlite.  And yes, it is just as fast if we
don't thread sync at the data access layer.

To answer your questions.

1*  Don't know, Sqlite is so fast, not concerned with sub second queries!
They all seem to run that fast.
2*  Minimal use of transactions through design and business logic code,
security seems to be the only transaction candidate.
3*  One, it is either an application server, web server.  These apps have
multiple thread handlers but it is all synchronized at the data access layer
so only one request can get to the db at a time.
4*  We don't ever hit the busy timeout handler.  We can't since we
synchronize in our data access layer.
5*  from minimal 500k - 50 GB (the 50 GB is tested, not in production)
6*  All the time.  In fact, we found that you get extremely good performance
on USB 2.0 connected drives or RAID SCSI systems.  

Thanks,
Allan

-----Original Message-----
From: D. Richard Hipp [mailto:[EMAIL PROTECTED] 
Sent: Sunday, November 23, 2003 11:22 AM
To: [EMAIL PROTECTED]
Subject: [sqlite] Concurrency in SQLite

Lots of people seem to think that better concurrency in SQLite would be
useful.  But I am having trouble understanding why.

Please, give me some examples of the kinds of things you are doing which
could benefit from improved concurrency.

   *  What SQL are you running that takes more than a fraction
      of a second to complete?

   *  Are you holding transactions open for an extended period
      of time?  Why?

   *  How many processes do you have trying to access the database
      at once?

   *  How do you currently handle SQLITE_BUSY replies?  Do you use
      the sqlite_busy_handler() or sqlite_busy_timeout() APIs?

   *  How large are your databases?

   *  Do you ever put database files on a shared filesystem?

The better I understand the problems, the better job I will be able to do in
resolving them.  Thanks for you responses.
--
D. Richard Hipp -- [EMAIL PROTECTED] -- 704.948.4565


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to