We need to prevent multi-user access to the SQL backend (Re: New GnuCash article on LWN)

Derek Atkins warlord at MIT.EDU
Thu May 20 12:55:01 EDT 2010


Graham Leggett <minfrin at sharp.fm> writes:

> On 20 May 2010, at 6:32 PM, Derek Atkins wrote:
>
>>>> Your solution to block the whole database is good enough for me.
>>>
>>> It's a real shame that a system fundamentally designed to offer multi
>>> user access to data should be crippled in such a fashion. In the
>>> process, virtually all reasons to use a SQL database are lost.
>>
>> What was "fundamentally designed to offer multi user access"?
>
> SQL databases.

Sure.  But GnuCash isn't a Database Application, even if it happens to
be able to use a SQL Database to store its data.

>> GnuCash
>> most certainly was not, even when it's using a SQL Database for data
>> storage.  Repeat after me:  GnuCash is NOT a Database Application.
>> It's
>> a standalone application that happens to be able to use a database
>> instead of SQL, but fundamentally it's still a standalone application.
>>
>> The fact that the DATABASE can be accessed multi-user has nothing to
>> do
>> with the fact that GnuCash was NOT designed to handle that and
>> therefore
>> needs to protect its data from users who try to do it.
>
> Which over time pretty much renders it useless.

Well, over time one would hope that we can slowly rearchitect gnucash to
be more aware of multi-user situations.

> In any practical usage, even in it's simplest form, you start off
> small and simple, and then eventually you reach a point where you want
> to share the file between two people, or share the file with an
> accountant, and you can't.

Why not?

> Which is a real pity, because in my experience gnucash gives about 95%
> of what a small business needs, tripping up on that last little bit.

I dont understand... Where can you not share your data?

> The fact that gnucash can be asked to save the file in text/xml helps,
> because you can version this in something like svn. But versioning a
> database isn't easy at all.

Why do you need versioning?  Versioning is overkill for data sharing.  I
suppose you could use it for auditing, but wouldn't it be better to have
the audit trail inside the database itself?  This is part of what a
multi-user system would entail.

On the other hand, once you start going down that road you really start
getting well past what GnuCash was designed for: Home Users and Small
Businesses.  It's a Quicken/Quickbooks replacement, not a Peachtree or
SAP replacement.

IMNSHO, adding MySQL and PG support was a mistake; we should have stuck
with just SQLite.

> Regards,
> Graham

-derek

-- 
       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