Project

General

Profile

Feature #5778

Updated by Tom Clegg about 9 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. 

Back