"Dan Petitt" <[EMAIL PROTECTED]> wrote:
> Are there any plans for sqlite to support row or table level locking, or
> possibly even Multiversion Concurrency Control, MVCC, its definition being:
>  

"Axel Mammes \(gmail\)" <[EMAIL PROTECTED]> wrote:
> Does your flat file support ACID transactions?

SQLite supports ACID transactions.  The database remains consistent
and transactions are atomic and durable even under the following 
conditions:

   *  Your program segfaults in the middle of an update
   *  Your operating system crashes in the middle of an update
   *  Your computer loses power in the middle of an update

SQLite does *not* assume that sector writes on a disk drive are
atomic.  Checksums are used to detect partial sector writes in
the event of a power loss.

In summary, SQLite is very much an ACID database engine.

Isolation in SQLite is SERIALIZABLE.  Note that SERIALIZABLE
implies that locking can be no more fine-grained than table-level.
You can obtain table-level locking in SQLite now.  Just put each
table in a separate database file and ATTACH as many tables to
your connection as you require.

Beginning with version 3.3.0, you will be able to configure SQLite
so that multiple connections running in the same thread will be
able to select READ UNCOMMITED isolation relative to one another.
Note that this will only be possible for connections in the same
thread - it will not be possible for connections in different
threads of the same process.  With READ UNCOMMITTED isolation,
you can still only have a single connection writing to the database
at a time, but writers will not block readers nor will readers block
writers.  This allows a much higher level of concurrency.

--
D. Richard Hipp <[EMAIL PROTECTED]>

Reply via email to