Subject Re: [ib-support] Large database file support
Author David K. Trudgett
On Wednesday 2001-09-05 at 09:59:53 -0400, Leyne, Sean wrote:

> All,
>
> Since there is an ongoing thread about large file support issues and
> since I'm responsible for doing the research for the large file changes
> to the Firebird engine, I thought I would publish this definitive
> response (I hope I get the *nix stuff right).

Hi Sean, thanks for this info!


>
> Second, the size issue is really the result of 3 separate factors -- the
> implementation (coding) of the FB/IB engine I/O functions, the support
> for 64bit file operations and support for large files by the filing
> systems.

Just a niggle: I think the people who make them call them "filesystems".


>
> In the case of *nix, 64bit file operations are only supported with the
> latest (v2.4) glibc. This support only ships with the latest

I'm not sure if that version you quoted is correct. Red Hat 7.1 ships with
GLIBC 2.2.2-10 and is reputed to work fine with large files (I use it
myself on my workstation, but haven't cracked the 2Gb file size yet).

On a more general note, but specifically regarding Linux :-) , there are (at
least) three factors that impact on maximum file size: (1) VFS support
(2) filesystem support; and (3) system library support (GLIBC). The Linux
kernel accesses different filesystems via the VFS (virtual filesystem)
abstraction layer. In the past, the VFS itself had a (signed) 32 bit limit,
which meant that _no_ Linux files on any type of filesystem could be bigger
than 2Gb. I'm not sure when the VFS limitation disappeared, but it is
definitely gone now (probably replaced by a 64 bit limit ;-)). I don't know
much about (2) and (3) except that in the latest Linux distributions, they
are no longer a problem either. In the case of the Ext2 filesystem (the
default native filesystem on most Linux systems), I believe it has
either always supported large files or has done so for quite a while.

[Note to the reader, in case it's not obvious! Please treat the above info
as an indication, not as gospel. I'm only the monkey repeating what I've
heard from sources that I believe to be reasonably authoritative.]



> distributions (Red Hat 7.x and Mandrake 8.x), although I understand that
> existing installs can be updated. Since support is not guaranteed for
> all platforms, there will be 2 versions of the Firebird *nix ports
> (32bit and 64bit I/O).

It can be difficult to remember that there are other Unixes besides Linux
;-)

GNU/Linux is great, of course, and getting better by the day. Keep your eye
out, though, for the next generation free Unix(-like) kernel, the GNU Hurd.
It's about 90% production quality now, which means that in about 12 months
or so it will be "fully functional". The GNU Hurd people are presently
busily compiling hundreds of packages to run on the Hurd. The Hurd is based
on modern micro-kernel architecture, and will deliver an order of magnitude
greater reliability and flexibility compared to the monolithic Linux
kernel. gnu.org has further info for those who may be interested.

Sorry for the off-topic aside.


David Trudgett