sqlite file format, anyone?

Derek Atkins warlord at MIT.EDU
Mon Jun 23 15:33:40 CDT 2003


linas at linas.org (Linas Vepstas) writes:

> > Well, by real-time I meant something like: user A has a register open,
> > user B changes the name of an account, user A should get a
> > notification of the change before they actually need to perform a
> > query.
> 
> Wouldn't it be the case that if user A opened a register, genrated a
> report, etc. they would get a gncQuery to run, which would go to the
> backend, which would cause any pending events to flush?   If this is
> really important, we could add a 'flush events' call to the backend, and
> then add a callback to gtk_main_loop that would run every minute.
> 
> Lat time I tested the multi-user funcs, things worked pretty well I
> thought.  Any 'reasonable' scanario seemd to work fine.

The problem is that user A wont get the event until AFTER they perform
an operation that forces a query.

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

> > as I mentioned earlier the balance checkpointing should be changed to
> > tie into Periods and we should scrap the stored procedures completely
> > on all platforms.  The current checkpointing is inherently flawed,
> > IMHO.
> 
> What's flawed with it?

well, it requires stored procedures for one (which means it's not
portable).  It's hairy.  It's easy to mess up.  It's confusing.

See, if we had real Period support then we could just call Periods the
checkpoint.  Yes, you would have to pull in all transactions since the
last period, but even for large organizations that wont be a lot.
Even at quarterly periods with 100 transactions a day, you would have to
pull in at most 91000 transactions.

> You don't need checkpointing for small systems, but if you've go an 
> account with  tens of thousands of transactions, or more, in it, I think
> you need it. 

Get period support in there and checkpointing falls out of there ;)

> > Speaking of which -- how goes the Lot interface and Periods?  Any
> > progress?
> 
> No progress. I think about it every now and then ... I really need to
> get some features into gnotime, that's where I've been working. 

*prod prod* Lots of users are waiting for it...  And then this
discussion would be relatively moot....

> --linas

-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