Linux NILFS development
 help / color / mirror / Atom feed
From: Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
To: Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org>
Cc: reinoud-qavaossjCcEdnm+yROfE0A@public.gmane.org,
	nop-Nqdcz63CPQY@public.gmane.org,
	linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [CFD] disk format fixing
Date: Tue, 11 May 2010 23:43:39 +0900	[thread overview]
Message-ID: <87r5li33dw.wl%jir@sekiba.com> (raw)
In-Reply-To: <20100510.032922.158554882.ryusuke-sG5X7nlA6pw@public.gmane.org>


At Mon, 10 May 2010 03:29:22 +0900 (JST),
Ryusuke Konishi wrote:
> 
> On Mon, 10 May 2010 01:45:35 +0900, Jiro SEKIBA wrote:
> > > As an alternative, I'm thinking to add a new state flag which
> > > indicates segments are allocated physically continuously from
> > > the super root to which super blocks point.
> > >
> > >
> > > The aim of this flag is allowing nilfs to find out the latest segment
> > > with bisection search.
> > > 
> > > Envisioned changes are as follows:
> > > 
> > > * add the new flag (for example, NILFS_INORDER_FS) for sbp->s_state.
> > > 
> > > * set the flag if a new mount options is specified (for example
> > >   "-o bisect-root").
> > > 
> > > * Do not update super block when the filesystem is unmounted, and keep
> > >   the state: s_state.NILFS_INORDER_FS = 1, s_state.NILFS_VALID_FS = 0.
> > > 
> > > * Stop periodic update of super blocks if the flag is set.
> > > 
> > > * If s_state.NILFS_VALID_FS = 0 && s_state.NILFS_INORDER_FS = 1 when
> > >   the filesystem is mounted, then do bisect search to find out the
> > >   latest segment.
> > 
> > Here are the question, to do bisect search, you need to know the end of
> > the segments to divide physically continuous blocks.  Which is the
> > end of the block for bisect?  Is this going to be the physical partition end?
> 
> The end position is the segment immediately in front of the current
> segment since disk space is typically used like a circular buffer.

Ah, I got it.  The continuous log is the one to make bisect search possible,
yet roll forwarding can reach the latest log.

I think, roll forwarding may be enough for boot loader,
for it still reach correct log.
And once correctly mounted, super block will be corrected.

Thanks!

regards,

> > > * If a new segment is allocated discontinuously and a new super root
> > >   is created, then write out super blocks to catch up the position.
> > > 
> > > * If GC breaks the series of physically continous segments, then
> > >   update super blocks to catch up the latest super root position.
> > > 
> > > * Add a new option to cleanerd to pass the "-o bisect-root" mode
> > >   and let it select the rotational GC algorithm (current default).
> > > 
> > > * If the "-o bisect-root" option is not specified, then use a
> > >   conventional algorithm and drop the NILFS_INORDER_FS flag.
> > 
> > I prefer option name like "-o async_sb" or "-o no_sync_sb" or so.
> > Because users would rather curious how to udpate super block than
> > how to find the latest log.
> 
> Thanks for the comment.  In a narrow sense, "no_sync_sb" is difficult
> in this approach, so "few_sync_sb" or "async_sb" sounds better to me.
> Anyway, I agree with your point.
>  
> > > This doesn't break forward compatibility, because the "next segment
> > > chain" is still maintained and older implementations will ignore the
> > > NILFS_INORDER_FS flag.  Older implementations and the current grub2
> > > module can find the latest super root though they incur penalty for
> > > mount time.
> > > 
> > > Another drawback of this approach is that it depends on garbage
> > > collection algorithm, but at least at present, this seems not to
> > > matter.
> > > 
> > > How does that sound?
> > 
> > It would be much better than scanning whole segments from
> > boot loader point of view.
> 
> Yes, I believe it doesn't complicate boot loader so much.
> 
> Thanks,
> Ryusuke Konishi
> --
> 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
> 
> 
> 


-- 
Jiro SEKIBA <jir-hfpbi5WX9J54Eiagz67IpQ@public.gmane.org>
--
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:[~2010-05-11 14:43 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-03 15:54 [CFD] disk format fixing Jiro SEKIBA
     [not found] ` <87aash3rrm.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-03 19:35   ` Jay Carlson
     [not found]     ` <7E6B7E93-FCB4-4E4C-AF4F-BEA8D8FE1F20-Nqdcz63CPQY@public.gmane.org>
2010-05-04 12:02       ` Reinoud Zandijk
     [not found]         ` <20100504120222.GA1132-bVHBekiX4bNgoMqBc1r0ESegHCQxtGRMHZ5vskTnxNA@public.gmane.org>
2010-05-04 14:01           ` Ryusuke Konishi
     [not found]             ` <20100504.230135.205087691.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-05-05 15:10               ` Jiro SEKIBA
     [not found]                 ` <8739y675aa.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-05 18:23                   ` Ryusuke Konishi
     [not found]                     ` <20100506.032327.203276062.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-05-09 16:45                       ` Jiro SEKIBA
     [not found]                         ` <87aas9hvm8.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-09 18:29                           ` Ryusuke Konishi
     [not found]                             ` <20100510.032922.158554882.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-05-11 14:43                               ` Jiro SEKIBA [this message]
2010-05-04 12:06   ` Reinoud Zandijk
     [not found]     ` <20100504120623.GB1132-bVHBekiX4bNgoMqBc1r0ESegHCQxtGRMHZ5vskTnxNA@public.gmane.org>
2010-05-05 15:19       ` Jiro SEKIBA
2010-05-04 14:38   ` Ryusuke Konishi
2010-05-16 14:42   ` Jiro SEKIBA
     [not found]     ` <87pr0v7vs8.wl%jir-27yqGEOhnJbQT0dZR+AlfA@public.gmane.org>
2010-05-16 17:25       ` Ryusuke Konishi
     [not found]         ` <20100517.022540.171394303.ryusuke-sG5X7nlA6pw@public.gmane.org>
2010-05-18 14:13           ` Jiro SEKIBA

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=87r5li33dw.wl%jir@sekiba.com \
    --to=jir-hfpbi5wx9j54eiagz67ipq@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=nop-Nqdcz63CPQY@public.gmane.org \
    --cc=reinoud-qavaossjCcEdnm+yROfE0A@public.gmane.org \
    --cc=ryusuke-sG5X7nlA6pw@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