Re: new database files not compressed

Hamish Moffatt
2020-08-31T10:40:31Z

On 31/8/20 7:25 pm, Nikolay Borisov wrote:
>
> Doing the following test :
>
> root@ubuntu18:~# mount -O compress-force=zstd /dev/vdc /media/scratch/
> root@ubuntu18:~# rm -rf /media/scratch/zero
> root@ubuntu18:~# dd if=/dev/zero of=/media/scratch/zero bs=16k count=1024
> sync
> btrfs inspect-internal dump-tree -t5 /dev/vdc
>
> results in:
>
>
> item 6 key (259 EXTENT_DATA 0) itemoff 15816 itemsize 53
> generation 12 type 1 (regular)
> extent data disk byte 315621376 nr 4096
> extent data offset 0 nr 131072 ram 131072
> extent compression 3 (zstd)
> item 7 key (259 EXTENT_DATA 131072) itemoff 15763 itemsize 53
> generation 12 type 1 (regular)
> extent data disk byte 315625472 nr 4096
> extent data offset 0 nr 131072 ram 131072
> extent compression 3 (zstd)
> item 8 key (259 EXTENT_DATA 262144) itemoff 15710 itemsize 53
> generation 12 type 1 (regular)
> extent data disk byte 315629568 nr 4096
> extent data offset 0 nr 131072 ram 131072
> extent compression 3 (zstd)
>
>
>
> I.e a bunch of 128k extents, which in fact take only 4k on disk each.
>
> Whereas if I write the same file but without the compress-force mount
> option I get:
>
> item 138 key (260 EXTENT_DATA 0) itemoff 8787 itemsize 53
> generation 14 type 1 (regular)
> extent data disk byte 298844160 nr 16777216
> extent data offset 0 nr 16777216 ram 16777216
> extent compression 0 (none)
>
>
> I.e a single extent, 16m in size. So instead of using this compsize
> utility or whatever it is can you dump the state of the filesystem as
> per the btrfs inspect-internal command shown above?

I used compsize as recommended by the wiki page:
https://btrfs.wiki.kernel.org/index.php/Compression#How_can_I_determine_compressed_size_of_a_file.3F

I created a new file system, ran dd bs=32k count=1024, then the dump
shows me items all the way up to item 161. https://pastebin.com/0MPPdqqM

item 160 key (258 EXTENT_DATA 33292288) itemoff 7750 itemsize 53
generation 7 type 1 (regular)
extent data disk byte 14671872 nr 4096
extent data offset 0 nr 131072 ram 131072
extent compression 3 (zstd)
item 161 key (258 EXTENT_DATA 33423360) itemoff 7697 itemsize 53
generation 7 type 1 (regular)
extent data disk byte 14675968 nr 4096
extent data offset 0 nr 131072 ram 131072
extent compression 3 (zstd)
total bytes 32196018176
bytes used 1245184
uuid 53eaed91-1060-445b-bf7c-5efe9917adbc

From mount: /dev/sdb on /mnt/test type btrfs
(rw,relatime,compress-force=zstd:3,space_cache,subvolid=5,subvol=/)

Hamish