[ale] Should filesystems have undelete (was Get paid for undelete on ext3help)
Michael Hirsch
mhirsch at nubridges.com
Fri Aug 23 09:19:48 EDT 2002
On Thu, 2002-08-22 at 20:26, Joseph A. Knapka wrote:
> "James P. Kinney III" wrote:
> >
>
> [scissors of brevity]
>
> > So, at this point, I don't recommend ANY journaling file systems for
> > anyone without a good, up and running backup system. In unix, rm is a
> > command, not a request!
>
> Indeed. I must say, I find the entire notion of an "undelete"
> function somewhat perverse. Why would one expect one's explicit
> order to *remove some files and free the occupied disk space*
> to be implicitly ignored by the system? Even on systems where
> file undeletion "works", like Windows et al, it only works
> if you get lucky and the space in question hasn't been
> reused for anything. If you *want* your "rm" command to
> be symbolic, then alias it to something that moves the
> files somewhere instead. Possibly that should be the
> default on desktop distros (but then you'd have millions
> of, "I just deleted ten gigabytes of crap off of my
> disk, but I still have no free disk space, what's up?"
> helpesk calls... if it ain't one thing it's another).
> I expect "delete, but don't *really* delete" has
> fragmentation and thus performance consequences, as
> well.
I consider this attitude to be very small minded. The world is larger
than computers. When I throw something away at home (the physical
equivalent of "delete" I can get it back by reaching into the waste
basket. After a while I need to get it from the garbage can. Later
still, if I really want it, I might be able to search through the town
dump. If I wait too long, it really is gone.
If I really want to destroy something I have to go to unusual measures,
like tossing it in the fire or passing it through the shredder. Even in
the more abstract art of writing, I can usually see what I just erased.
It is human nature to make mistakes and/or change you mind. Well
designed computer systems need to account for this. Computers should
adjust to people, not vice versa.
It's kinda funny--Unix editors were the first to allow for this. vi and
Emacs had many levels of undo long before it became standard in PCs.
But the Unix file systems have been very weak in this area. There have
been versioning filesystems that would keep a history of each
file--where have they gone and why don't any of the Unix systems to
that?
I think ideally all the basic file manipulation commands should be
reversible. "rm foo" should make foo invisible. If you really need the
space you should issue a "dump garbage" command that will flush out all
the space reserved for undelete. Also, as the disk fills up the
undelete space should get used. You know, this sounds kinda like the
way linux deals with virtual memory. You keep stuff around cause you
might need it again, but automatically reclaim the space on a LRU basis.
There are versioning systems like CVS that do some of this, but the user
has to explicitly call them--I want something that is the default
behavior. Also, CVS repositories only grow and never recycle their
bits; even a "removed" file never gives up it's space in CVS. I want a
system that starts giving space back as it is needed.
Of course, if a system like this were built there would be a whole new
faq:
Q. df shows that I have only 10% free space, but I know that I'm only
using 20% of my disk.
A. In the df output, notice the "deleted/undo" section. You have to add
that into the free to get the real amount of space.
Filesystem 1k-blocks Used Deleted/Undo Available Use% Mounted on
/dev/hda2 36416784 6127132 27123321 13164478 91% /
Re: [ale] Get paid for undelete on ext3 help
--Michael
---
This message has been sent through the ALE general discussion list.
See http://www.ale.org/mailing-lists.shtml for more info. Problems should be
sent to listmaster at ale dot org.
More information about the Ale
mailing list