Loading whole db at startup (was Re: String lengths in the SQL backend)

Phil Longstaff plongstaff at rogers.com
Mon Nov 17 09:53:57 EST 2008


On November 16, 2008 02:01:05 pm Derek Atkins wrote:
> Phil Longstaff <plongstaff at rogers.com> writes:
> >> Wait, the ENTIRE contents are read in?  Historically only "necessary
> >> data" was read in.  That would be the Accounts and Commodities from
> >> the main CoA.  The transactions were all loaded on demand.
> >
> > Yes.  I wanted to only read "necessary data".  However, my (admittedly
> > incomplete) knowledge of the engine led me to the conclusion that parts
> > of th engine assume that all data is present.  I couldn't get the account
> > tree to show correct values, for example, unless all splits for an
> > account were present.  I ended up just loading the whole database into
> > memory.
>
> There should not be any dependence on reading in all the data from the DB.
> The old PG Backend certainly did not, and it worked fine.  I think it got
> around it by having checkpoints for things like running account balances,
> so you only need to load "current" transactions, not all of them.
>
> If you're loading all data all the time then the only benefit to the DB
> backend over the XML backend is save-on-commit.

I've removed gnucash-user because this is getting into development topics.

I thought I was doing what the pg backend was doing, and it wasn't working.  I 
just looked again and found a difference - the pg backend was setting the 
starting balances, and I was setting the ending balances.  I'll try again to 
not load the transactions and set just the starting balances (balance/cleared 
balance/reconciled balance).

Phil


More information about the gnucash-devel mailing list