On Tue, Oct 9, 2018 at 8:48 AM, Gervais, Francois <fgerv...@distech-controls.com> wrote: > Hi, > > If I have a snapshot where I overwrite a big file but which only a > small portion of it is different, will the whole file be rewritten in > the snapshot? Or only the different part of the file?
Depends on how the application modifies files. Many applications write out a whole new file with a pseudorandom filename, fsync, then rename. > > Something like: > > $ dd if=/dev/urandom of=/big_file bs=1M count=1024 > $ cp /big_file root/ > $ btrfs sub snap root snapshot > $ cp /big_file snapshot/ > > In this case is root/big_file and snapshot/big_file still share the same data? You'll be left with three files. /big_file and root/big_file will share extents, and snapshot/big_file will have its own extents. You'd need to copy with --reflink for snapshot/big_file to have shared extents with /big_file - or deduplicate. -- Chris Murphy