|
|
Jim Henderson wrote:
> Corrupting a single file isn't exactly the same thing as corrupting the
> filesystem.....cf reference to our previously crashed RAID arrays.
No. But since the file system already supports not corrupting the file
system, why wouldn't it support not corrupting the file?
> I've dealt with transactional systems quite a bit, now I see what you
> were saying - treat the "package" update as a single transaction.
Yes, exactly. Which is hard to do on a file system that doesn't support
transactions, because UNIX traditionally layered transactions and locking on
top of the file system in an application-specific way, just like it layers
"login" on top of the permission system in an application-specific way.
Hence, you have people creating unwritable lock files to lock things, and
the file system can't support things like temp files that only survive until
you log out, and things like that.
> But there again we're talking about configurations that aren't terribly
> common these days
Sure. But again, you're looking at the one example and failing to generalize.
>>>> Cool. What's the system call in Linux that lets me change three files
>>>> consistemtly? I.e., I have files /tmp/One, /tmp/Two, and /tmp/Three,
>>>> and I want to rename them respectively to /tmp/1, /tmp/2, and /tmp/3,
>>>> and I never want any possibility of an "ls" operation on the /tmp/
>>>> directory to show my /tmp/One and /tmp/3 at the same time, or /tmp/1
>>>> and /tmp/Three. Is there some way to accomplish that?
>>> Again, if it's handled as part of the system update, the updater takes
>>> care of that for you, not the system.
>> That didn't answer the question. How does the updater make sure that
>> you never see a half-renamed collection of files, even assuming we're
>> only talking about the updater here?
>
> Because it deals with the individual package updates one RPM or delta
> file at a time.
You still didn't answer the question. Look at the actual question:
What's the system call in Linux that lets me change three files
consistently?
You said the Linux journaling file systems let you have file system
transactions. I believe it might be there, but I've never found it; it might
be something new. What's the system call?
> Where there's a will, there's a way - it is all open source code, so it
> wouldn't be impossible to implement for someone who was really determined
> to do so. :-)
Sure. But you implied it's already there.
I just pine for the days when it was possible to write a program that ran
reliably even in edge conditions, rather than being impossible to ensure
that things work correctly because the underlying systems are so half-ass. :-)
--
Darren New, San Diego CA, USA (PST)
The NFL should go international. I'd pay to
see the Detroit Lions vs the Roman Catholics.
Post a reply to this message
|
|