Subj : Committing file changes
To : George White
From : David Noon
Date : Sun Aug 20 2000 01:58 am
Hi George,
Replying to a message of George White to Coridon Henshaw:
CH>> It's not intermediate commits I need: what I need is some way to
CH>> flush out write operations made to files which might be open for
CH>> days or weeks at a time
GW> The only reliable way I know of is _NOT_ to keep the files open but to
GW> open and close them as needed. It is the _only_ way I know which is
GW> guaranteed to update the directory information (Inode under *NIX) so
GW> that a chkdsk won't cause you that sort of grief. In a similar
GW> situation I ended up opening and closing the file during normal
GW> operation to ensure the on-disk information and structures were
GW> updated. Originally I opened the file on start-up and kept it open.
This is true when one is keeping things simple, such as using sequential file
structures.
A genuine database [and that is what Coridon claims he is coding] does not
restrict itself to simple file structures. The usual approach is to allocate
and pre-format a suitably large area of disk, known as a tablespace in DB2, and
then maintain database-specific structural data within that. The pre-format
operation finishes by closing the physical file, thus ensuring the underlying
file system has recorded the number and size of all disk extents allocated to
the file. The DBMS is then free to "suballocate" the disk space as and how it
sees fit. It also takes on the responsibility to ensure the consistency of the
database's content.
We will see how Coridon implements such a database system.
Regards
Dave
<Team PL/I>
--- FleetStreet 1.25.1
* Origin: My other computer is an IBM S/390 (2:257/609.5)