Re: Contributing to NILFS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2012-12-17 at 11:23 +0100, Andreas Rohner wrote:
> Hi,
> 
> > I misunderstand slightly about what implementation you are talking.
> > Could you point out NILFS2 source code that implement this technique? As
> > I understand, if we have implemented data reordering before flush and
> > during the cleaning then it means that we have implemented online
> > defragmenting. But, if so, why this task is in TODO list?
> 
> I guess I just assumed it. But I would connect these issues more with
> the first item on the TODO-List "Smarter and more efficient Garbage
> Collector".
> 

As you mentioned earlier, yes, garbage collection and defragmenting are
tightly related technique, from my point of view. So, GC will be more
smarter and more efficient in the case of defragmenting activity
addition in the garbage collection. Moreover, I think that more
promising technique is a some defragmenting activity during writing in a
new segment. I mean that when we add or modify some blocks of file then
it is possible to write in a new segment additional file's fragments
from old ("dirty") segments. So, we can achieve garbage collection and
defragmenting in the background of write operation. But, as you can see,
such technique can be implemented only on the kernel side. 


> > > Instead I imagined a tool like xfs_fsr for XFS. So the user can decide
> > > when to defragment the file system, by running it manually or with a
> > > cron job.
> > 
> > If you are talking about user-space tool then it means that you are
> > talking about offline defragmenter. I think that offline defragmenter is
> > not so interesting for users. The most important objections are:
> 
> I am sorry about the misunderstanding. I thought the term "online" just
> means that the file system is mounted, while the defragmentation tool is
> running. So offline defragmentation would be if you had to unmount the
> file system for defragmentation. EXT4 [1] and XFS both do "online"
> defragmentation with a user-space tool. I assumed, that the item on the
> TODO-List means something similar. Such a tool could be useful to reduce
> aging effects. It should be very conservative and probably not run every
> day, but instead once a month.
> 
> [1] http://lwn.net/Articles/317787/
> 

Yes, it is possible to implement defragmenting in the user-space
approach. But I think that the current "trend" and end-users
expectations is to integrate such technique (fsck, defragmenting, and so
on) in the internal filesystem technique. So, kernel side implementation
is more promising way, from my point of view. Moreover, kernel side
implementation can provide more infrastructure opportunities and save
significant time for implementation efforts in the case of online
defragmenting task.

And, again, I think that online defragmenting should be useful for HDD
and SSD cases. :-)

With the best regards,
Vyacheslav Dubeyko.


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


[Index of Archives]     [Linux Filesystem Development]     [Linux BTRFS]     [Linux CIFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux