]> Sergey Matveev's repositories - stargrave-blog.git/commit
Данные в символических ссылках на ZFS
authorSergey Matveev <stargrave@stargrave.org>
Sun, 26 Sep 2021 11:01:18 +0000 (14:01 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 26 Sep 2021 11:01:18 +0000 (14:01 +0300)
commitce77c1a4e9eda67679c6c8d1ccd7bfc44020d3e8
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent3fc1f4ed879712d56ffea7e00e1e0b52aefdf3f2
Данные в символических ссылках на ZFS

Для GoCheese решил попробовать хранить контрольные суммы не в виде
содержимого файлов, а в виде символических ссылок, где будет например
Base64 (494ba450b1c38f4008afdef83dd7043ea5f1ef95). Сконвертировал весь
PyPI state, увидел что размер dataset-а стал только больше. Пошёл
ковыряться в zdb -- впервые его использовал для настоящей задачи
выяснения что же реально сохранилось на диске (прежде им только смотрел
ashift). В общем, небольшого размера данные и так умещаются внутрь
dnode-ы в виде EMBEDDED indirect блока. А содержимое символической
ссылки в ZAP структуре. Но 32-байта займут меньше места чем их
кодированное представление, поэтому и размеры dnode, судя по всему (или
ZAP overhead? не думаю) меньше и данные в символических ссылках тут
только вредят.

Где-то мельком видел что до 60 байт символические ссылки на ext4
хранятся прямо в inode. В UFS тоже встраиваются, если небольшого
размера, в inode. Но на ZFS во всём этом смысла нет.