[Zope] FYI: large files & linux.
Ty Sarna
tsarna@endicor.com
7 Mar 2000 22:47:49 GMT
In article <87n1oazuao.fsf@erwin.complete.org>,
John Goerzen <jgoerzen@complete.org> wrote:
> It supports it to no greater or less extent than Linux does. The
Untrue.
> standard library defaults to using an int or a long for *seek calls.
> The difference is semantic only, as they're both 32 bits on both
> systems anyway. Even if you assume unsigned (fseek is signed), that's
> still 4gb, max.
The kernel internals of Linux use a 32 bit off_t, hence discussion of
large file support in the next kernel release.
> I submit, therefore, that you are not seeing a Linux problem, but an
> x86 problem :-)
I'm not seeing an x86 problem at all:
lukasiewicz$ uname -sp
NetBSD i386
lukasiewicz$ ls -l huge
-rw-r--r-- 1 tsarna users 17592186044415 Mar 7 12:41 huge
Granted, that's a sparse file (I can't afford that much disk space :^),
but it demonstrates that file offsets are not a problem. As mentioned,
NetBSD's off_t has been a 64 bit type for about 6 years now, even on
i386 (and evey other platform). In fact, off_t was made 64 bit in 1994,
and NetBSD/alpha didn't exist until 1995, so it was done before there
were any native 64 bit platforms supported. :-)
However, it turns out that for Zope use, at least with FileStorage,
there is a problem, which turns out to be even an x86 issue but a silly
ANSI C spec issue. Unfortunaly Python large file support is broken on
(32-bit CPU) NetBSD as a result -- I had to make that sparse file with a
little C program. Now, you could have a more than 4G BerkeleyStorage
Zope system, since the file handling isn't done at the Python level in
that case, but FileStorage won't work until I can work around the Python
problem (or until NetBSD 1.5, which will fix it in a different way).
But at least it's the kind of thing that could be hacked around in an
application by one guy in a day, rather than taking drastic kernel
and libc changes :-)