Lazy lowerdata lookup and data-only layers (Was: Re: Composefs:)

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

 



> > >
> > > I think lazyfollow could be enabled by default after we hashed out
> > > all the bugs and corner cases and most importantly remove the
> > > POC limitation of lower-only overlay.
> > >
[...]
> > >
> >
> > Lazy follow seems to make sense.  Why does it need to be optional?
>
> It doesn't.
>
> > Does it have any advantage to *not* do lazy follow?
> >
>
> Not that I can think of.

Miklos,

I completed writing the lazy lookup patches [1].

It wasn't trivial and the first versions had many traps that took time to
trip on, so I've made some design choices to make it safer and easier to
land an initial improvement that will cater the composefs use case.

The main design choice has to do with making lazy lowerdata lookup
completely opt-in by defining a new type of data-only layers, such as
the content addressable lower layer of composefs.
The request for the data-only layers came from Alexander.

The current patches only do lazy lookup in data-only layers and the lookup
in data-only layers is always lazy.

Data-only layers have some other advantages, for example, multiple
data-only uuid-less layers are allowed.
Please see the text below taken from the patches.

What do you think about this direction?

Alexander has started to test these patches.
If he finds no issues and if you have no objections to the concept,
then I will post the patches for wider review.

Thanks,
Amir.

[1] https://github.com/amir73il/linux/commits/ovl-lazy-lowerdata-rc2

Data-only lower layers
----------------------

With "metacopy" feature enabled, an overlayfs regular file may be a
composition of information from up to three different layers:

 1) metadata from a file in the upper layer

 2) st_ino and st_dev object identifier from a file in a lower layer

 3) data from a file in another lower layer (further below)

The "lower data" file can be on any lower layer, except from the top most
lower layer.

Below the top most lower layer, any number of lower most layers may be
defined as "data-only" lower layers, using the double collon ("::") separator.

For example:

  mount -t overlay overlay -olowerdir=/lower1::/lower2:/lower3 /merged

The paths of files in the "data-only" lower layers are not visible in the
merged overlayfs directories and the metadata and st_ino/st_dev of files
in the "data-only" lower layers are not visible in overlayfs inodes.

Only the data of the files in the "data-only" lower layers may be visible
when a "metacopy" file in one of the lower layers above it, has a "redirect"
to the absolute path of the "lower data" file in the "data-only" lower layer.



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux