From ce77c1a4e9eda67679c6c8d1ccd7bfc44020d3e8 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 26 Sep 2021 14:01:18 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B2=20?= =?utf8?q?=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81?= =?utf8?q?=D0=BA=D0=B8=D1=85=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=D1=85?= =?utf8?q?=20=D0=BD=D0=B0=20ZFS?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Для GoCheese решил попробовать хранить контрольные суммы не в виде содержимого файлов, а в виде символических ссылок, где будет например Base64 (494ba450b1c38f4008afdef83dd7043ea5f1ef95). Сконвертировал весь PyPI state, увидел что размер dataset-а стал только больше. Пошёл ковыряться в zdb -- впервые его использовал для настоящей задачи выяснения что же реально сохранилось на диске (прежде им только смотрел ashift). В общем, небольшого размера данные и так умещаются внутрь dnode-ы в виде EMBEDDED indirect блока. А содержимое символической ссылки в ZAP структуре. Но 32-байта займут меньше места чем их кодированное представление, поэтому и размеры dnode, судя по всему (или ZAP overhead? не думаю) меньше и данные в символических ссылках тут только вредят. Где-то мельком видел что до 60 байт символические ссылки на ext4 хранятся прямо в inode. В UFS тоже встраиваются, если небольшого размера, в inode. Но на ZFS во всём этом смысла нет. -- 2.48.1