sqlite file format, anyone?

Christopher Browne gnucash at cbbrowne.com
Mon Jun 23 17:25:13 CDT 2003


Derek Neighbors wrote:
> >> > > > Ok, this implies we cannot do multi-user on MySQL
> >> > >
> >> > > You can't do multi-user with MySQL because of the problems with
> >> locking, and because I'm pretty sure that 'real' multi-user
> >> installations will need the balance checkpointing which needs
> >> stored proceedures.  You can probably work around the events issue
> >> by sticking them in a table, and polling that table.
> >> >
> >> > I am still not coninvinced there is any locking problem here.  Also,
> >>
> >> Can you nest table locks in mysql?  I thought you couldn't.  Can you
> >> rollback? i.e. start to make changes and then decide to skip it?
> >
> > Yes, you can rollback.  I don't know about nested table locks offhand.
> 
> In a multi-user system why on earth would you want to lock a table,
> much less multiple tables at a time?  I would suspect that as a
> serious design flaw.

It seems as though designing a multi-user system around MySQL represents
a serious design flaw in and of itself...
<http://www.mysql.com/doc/en/Locking_methods.html>

I would contend that optimizing for the features that are missing in
MySQL and sqllite is a premature optimization.  

By the time you work around reimplementing the missing things inside
GnuCash, you'll have written more code than the difference in size
between PostgreSQL and MySQL.  

And from the stats I'm seeing, MySQL has grown just as heavy as
PostgreSQL.

dev6% sudo apt-get install mysql-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  mysql-server
0 packages upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 3373kB of archives.
After unpacking 8069kB of additional disk space will be used.
Do you want to continue? [Y/n]

dev6% sudo apt-get remove postgresql       
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  postgresql postgresql-contrib
0 packages upgraded, 0 newly installed, 2 to remove and 14 not upgraded.
Need to get 0B of archives.
After unpacking 8770kB disk space will be freed.
Do you want to continue? [Y/n]

SQLLite is much lighter, at 442K, but I think people would be better off
with Berkeley DB, which actually supports transactions, these days, and
which is definitely lightweight instead of only being apparently so.

But consider: GnuCash has chosen to use GNOME libraries, in spite of
there being some that might prefer KDE, and the mix of C/Guile, despite
there being many that wish it were written in C++.  For there to be
Another Executive Decision that the DBMS be PostgreSQL would hardly seem
out of line.
--
let name="cbbrowne" and tld="ntlug.org" in String.concat "@" [name;tld];;
http://cbbrowne.com/info/rdbms.html
"Starting a project in C/C++ is a premature optimization."
-- Peter Jensen


More information about the gnucash-devel mailing list