QOF-to-SQL Proof of Concept

Derek Atkins warlord at MIT.EDU
Sat May 29 10:30:19 EDT 2004

Benjamin Carlyle <benjamincarlyle at optusnet.com.au> writes:

> On Thu, 2004-05-27 at 00:14, Derek Atkins wrote:
>> linas at linas.org (Linas Vepstas) writes:
>> > but SQLLite is single-user, right?  No multi-user support.
>> No, there is multi-user support in SQLite (at least according to their
>> website).  It lock()'s the database file for writes.
> I think I've been involved with this discussion on the list before :)
> When you talk about sqlite being multi-user, it depends on what you mean
> by multi-user. If you mean that multiple writers can be active in the
> same database at the same time, no it's not. If you mean that an

What's your definition of "active"?

> unlimited number of readers can be simultaneously active, then yes. It's
> multi-user. If you mean that multiple threads across multiple processes
> can access the database without having to manage their own locking
> semantics to avoid database corruption, it's multi-user. Sqlite is
> designed to allow multiple threads across multiple databases to access
> the database simultaneously. If a reader is active, an unlimited number
> of other readers may also be active. If a writer is active, no other
> writers and no readers may be active. All locks apply to the database as
> a whole, and no page- or row-level locking is available.

I'm envisioning multiple gnucash applications "opening" the same
database and then each app reading/writing as necessary for its
operation.  Obviously the writes need to be serialized (you can't have
both apps "writing" at the same time, but my hope is that the locking
semantics are such that when app1 tries to perform an UPDATE, it will
lock out app2; when the update finishes the lock is released and then
app2 can perform its UPDATE.

I don't care that this lock is on the whole database, just so long as
the database handles it for me, and that I don't need to specifically
say "I'm opening the database for writing".


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list