linux-nilfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Evert Mouw <post-yfx6isLFVcpeoWH0uzbU5w@public.gmane.org>
To: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Ryusuke Konishi
	<konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
Subject: Re: time-shifting
Date: Mon, 08 Aug 2011 00:17:58 +0200	[thread overview]
Message-ID: <4E3F0F16.7020200@evert.net> (raw)
In-Reply-To: <20110807.231959.212685724.ryusuke-sG5X7nlA6pw@public.gmane.org>

Hi,

Op 2011-08-07 16:19, Ryusuke Konishi schreef:
> At present, nilfs does not have such per-file pointer to past
> versions, so actually it's not optimal for file history lookups.
>
> We may be able to do indirectly by adding a new field to on-disk inode
> to keep a checkpoint number in which the inode lastly changed.
> However, the new field must be updated every time garbage collector
> thins out the previous version, -- this may complicate things
> unacceptably because the current nilfs is designed so that it never
> overwrites in-use blocks except super blocks.
Very interesting, thanks for your explanation. I agree that updating 
such a field to a previous checkpoint should not be overwritten. A 
solution would be to not update the field when the garbage collector 
runs. The result is that a pointer to a previous checkpoint could point 
to a non-existing checkpoint. That should not be a problem, because it 
is known which checkpoints do exist, so a simple "if ( ( 
previous-checkpoint == X ) and ( X not element of available checkpoints 
) ) then previous-checkpoint = NULL" would do. That would enable easier 
checks for previous versions, although if there is some chechpoint 
series like "1 2 3 4" and some file exists in all four of those, and if 
you remove checkpoint 2, then this system will never find the oldest 
version in checkpoint 1. But such a scenario is unlikely because the 
garbage collector removes the oldest checkpoints first. Also, this 
solution doesn't need to be perfect to be better than nothing at all.

Just my 2 cents, for I don't have any filesystem development experience.

Regards, Evert

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2011-08-07 22:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-06  7:38 time-shifting Evert Mouw
     [not found] ` <4E3CEF72.1070303-yfx6isLFVcpeoWH0uzbU5w@public.gmane.org>
2011-08-07 14:19   ` time-shifting Ryusuke Konishi
     [not found]     ` <20110807.231959.212685724.ryusuke-sG5X7nlA6pw@public.gmane.org>
2011-08-07 22:17       ` Evert Mouw [this message]
     [not found]         ` <4E3F0F16.7020200-yfx6isLFVcpeoWH0uzbU5w@public.gmane.org>
2011-08-08 12:28           ` time-shifting Ryusuke Konishi
     [not found]             ` <20110808.212859.255403671.ryusuke-sG5X7nlA6pw@public.gmane.org>
2011-08-08 14:02               ` time-shifting Evert Mouw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E3F0F16.7020200@evert.net \
    --to=post-yfx6islfvcpeowh0uzbu5w@public.gmane.org \
    --cc=konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).