DBI backend design questions

Graham Menhennitt graham at menhennitt.com.au
Mon Jul 20 02:06:30 EDT 2009


I've been playing with the new DBI backend over the weekend. I have a 
couple of questions and I potentially have a couple of bugs too, but I 
need to test a bit further.

A number of times Derek has said that, despite using a DB as the 
backend, GnuCash is not a real DB app. I'd like to know what that means 
exactly. Some things that I would expect of a DB app are:
- making all changes using DB transactions to avoid inconsistencies,
- handling multi-user access to some extent (at the very least, just 
saying "DB locked" if users try to do things simultaneously),
- high level consistency if two users try to update sequentially (i.e. 
you don't get primary key errors on inserting transactions),
- dynamic update of GUI to reflect changes made by other users (i.e. 
register entries automatically appear on other user's GUIs).
Are any of these met by the current implementation?

In particular, if I try to open the same GnuCash DB from two machines 
simultaneously, should I expect any "DB locked" message (similar to the 
"could not obtain lock" message of the old XML store)? If not, what 
should I expect?

Thanks for any answers,
  Graham


More information about the gnucash-devel mailing list