Feature #5778

Updated by Tom Clegg over 4 years ago

Keep can perform efficient copy-on-write of files and directories, but standard POSIX doesn't provide an API for this. semantics don't offer a way to specify COW (copy on write) link semantics. We've decided not to abuse standard hardlinks: while similar (in the "fast copy" sense), hardlinks offer incompatible semantics ("two filenames refer because we can't actually provide POSIX conforming behavior.

Establish a protocol
to the same data; writes to either file are reflected in both").

Possible approaches
ask for exposing COW capability through arv-mount: copies from the FUSE driver. This could be one of:

* Use BTRFS clone ioctl() (requires support for handling ioctl() in llfuse). User can use @cp --reflink@
* Use s3fs approach of writing a special xattr() to a special place to request a COW link. User uses a custom command to communicate with the file system.

Meanwhile, the following workaround is possible without modifying the FUSE driver (and could be provided as a "copy" CLI program):

* Determine source and target collections, perform the operation using Arvados SDK. Also requires a custom command. Results show up in target directory on refresh.