[fpc-pascal]Databases and FPC
James Mills
prologic at prologitech.com
Tue May 6 15:50:05 CEST 2003
On Tue, May 06, 2003 at 11:02:05PM +1000, James Mills wrote:
> On Tue, May 06, 2003 at 12:10:52PM +0200, Rainer Hantsch wrote:
> > On Tue, 6 May 2003, James Mills wrote:
> > | > - How many records are assumed to be in the file?
> > | It's an IRC Services program soon to be a daemon.
> > | The number of records in the file will grow. For a small irc network,
> > | perhaps 100-200, it may grow larger in time. If a large network chooses
> > | to use my program for their large network, then the database may contain
> > | thousands of records.
> > So you must be prepared for huge data volumes from the beginning.
>
> Tre.
>
> >
> > | > - What kind of file?
> > | Currently they are stored as files in a directory "./data". The files
> > | follow the structure of an INI file which I have written my own code to
> > | handle.
> > I would keep in mind that with growing complexity of a file, loading it
> > will usually also become slower.
> >
> > | > - Sorted/unsorted file?
> > | Unsorted. Most recent record addition will always be at the bottom of
> > | the file.
> > You have to search for records? Then this is no good choice, because you
> > always have to read sequentially... Costs a lot of time.
> >
> > | This is not very good with something that has to be stable. IRC Services for
> > | instance. If for some reason the program should die unexpectedly then the
> > | data change in memory will be lost before being written out to disk.
> >
> > Well, when you keep all changes in memory for hours, this may be true. But
> > what about "dumping" the memory list to file periodically and (possibly) using
> > two files alternating? So even if you crash totally, one of the two files is
> > ok. --> What happens when you use i.e. MySQL as database? This can also crash
> > and has much more complexity (and therefore risks) as a flat file!
> >
> > My experiences are: When a process DIES, this nearely always caused by poor
> > program code. And this often happens when using pointers or when not cleaning
> > up memory correctly.
> > But it is much safer to have one "database-daemon" running than having
> > multiple tasks fiddleing concurrently around in shared files!
>
> This is true, my code us mostly 99.9% defect free. We learn a lot about
> how to engineer software at uni :) Thank you for your ideas, I'll be
> sure to come up with something. Personally I'd rather implement my own
> database as you said instead of relying on another process/task to
> handle the database.
Geeez, I can't type anymore!!! Sorry for the typos.
>
> And as you said, if the code is flawless there should be no problem.
>
> cheers
> James
>
> >
> >
> >
> > mfg
> >
> > Ing. Rainer Hantsch
> >
> > --
> > .---------------------------------------------------------------------.
> > | \\|// Ing. Rainer HANTSCH - Hardware + Software |
> > | (o o) Forget Windoze! -- We focus on L-I-N-U-X... |
> > |--oOOo-(_)-oOOo------------------------------------------------------|
> > | Ing. Rainer HANTSCH | mail: office at hantsch.co.at |
> > | Khunngasse 21/20 | www: http://www.hantsch.co.at |
> > | A-1030 Vienna | tel: +43-1-79885380 fax: +43-1-798853818 |
> > | ** A u s t r i a ** | handy: +43-664-9194382 UID-Nr: ATU 11134002 |
> > '---------------------------------------------------------------------'
> >
> > _______________________________________________
> > fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> > http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list