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

Re: pbuilder: cowdancer/cowbuilder status update



Hi,

> > This is an update on using userland COW method with pbuilder.
> > 
> > cowdancer is a tool that allows you to "cp -al" (hardlink) a tree, and
> > break the hardlink when a write-open to a file is performed. The
> > adventurous part of cowdancer COW implementation is that it's trying
> > to do this from within userland only.
> > 
> > cowbuilder doesn't really exist yet; it's a name for pbuilder ported
> > to fully use cowdancer. cowdancer is under development, and Debian
> > package exists in unstable. It seems like it's getting nearly there
> > with the feature set. With version 0.8, performance is improved
> > against a large tree (I profiled against building the kernel), and
> > with version 0.9, I fixed a bug which you could not replace /lib/ld.so
> > while cowdancer was running.
> 
> Are you aware of fl-cow, which is a LD_PRELOAD userspace COW tool ?

It seems to be the tool with a same kind of goal. If I knew it
existed, I might have started from it. However, it only supports
'open', so it will have problems when used with pbuilder; for example,
file permissions are shared between files with same i-nodes.  The
scope of implementation between the two applications is a bit
different.



[08:32:34]dancer64:fl-cow-0.6> ls -l test/
Makefile.am  Makefile.in  flcow-test.c  flcow-test.sh
(the testsuite only contains test for 'open' and 'open64')


[08:33:16]dancer64:cowdancer> ls tests/
000_test_basic.sh    004_test_fopen64.sh      014_ilistdump_test.sh
001_test_symlink.sh  010_test_noilistfile.sh  900_test_pbuilder.sh
002_test_open.c      012_test_chown.c         CVS
002_test_open.sh     012_test_chown.sh        README
003_test_fopen.c     013_test_chmod.c         log
003_test_fopen.sh    013_test_chmod.sh
004_test_fopen64.c   014_ilistdump_test.c

(the testsuite tests for apt-get dist-upgrade and debuild...)


Considering the difference, it might be better to improve desciprtions
of both packages.



Another difference I noticed is that fl-cow takes a list of
directories to protect in FL_COW, and seems to copy files
unconditionally on 'open'.

cowdancer caches a list of i-nodes so that it won't try to break
hardlinks more than once. (cow-shell does this much work).

regards,
	junichi
-- 
dancer@{debian.org,netfort.gr.jp}   Debian Project



Reply to: