hammer prune explanation
Michael Neumann
mneumann at ntecs.de
Tue May 13 06:04:10 PDT 2008
Matthew Dillon wrote:
> :Yeah, I was thinking about wildcarding as well.
> :
> :But is it possible to implement it within cmd_prune.c, or do I have to
> :modify the ioctl kernel code? If done in cmd_prune.c, I somehow have to
> :iterate over all deleted files and call the prune command for it.
> :
> :I thought, it's easier to introduce a check in the kernel, whether the
> :file that should be pruned matches a given pattern. Doesn't sound very
> :hard to do, if it is easy to get the pathname for a given inode.
> :
> :Are you thinking about something like the archive flag?
>
> I think it is probably best to implement that level of sophistication
> in the utility rather then in the kernel. The pruning ioctl code
> has no concept of files or directories... literally it has no
concept.
> All it understands, really, are object id's (aka inode numbers) and
> records.
>
> The hammer utility on the other hand can actually scan the filesystem
> hierarchy.
>
> Locating wholely deleted files and directories is not hard to do.
> As-of queries can be used to access earlier versions of a directory.
Hm, how would that work, if I want it to behave like the prune command?
I'd need to traverse a lot of filesystem trees, to just determine which
files were deleted.
Imagine:
compare /mnt with /mnt at 1-hour-ago and prune deleted files.
compare /mnt at 1-hour-ago with /mnt at 2-hours-ago ...
I wouldn't find files that were deleted in between 1-hour-ago and
2-hours-ago. To make it work, I'd need to compare the filesystem trees
of every possible timestamp.
It's probably easier, and more efficient, to have
separate filesystems.
> We might want to add some kernel support to make it more efficient,
> for example to make it possible for the hammer utility to have
> visibility into all deleted directory entries. It could use that
> visbility to do as-of accesses and through that mechanic would thus
> have visibility into all deleted files and directories.
Does this mean, I'd see files like:
/a at 12312323
/a at 12312323/x at ...
/b at 43434343
Regards,
Michael
More information about the Users
mailing list