Deduplikacja blokiem o zmiennej wartości

Deduplikacja blokiem o zmiennej wartości (ang. variable-block deduplication) – deduplikacja, która ustala „w locie” wielkość bloku porównującego, na którego podstawie analizowane jest podobieństwo plików. Dzięki temu ten rodzaj deduplikacji jest w stanie rozpoznać zmiany nie tylko dodane na końcu pliku (jak to ma miejsce w deduplikacji blokiem o stałej wielkości), ale też te dokonane na jego początku, bądź w środku.

Przykładowo, jeśli dane są modyfikowane wewnątrz pliku (pomiędzy poszczególnymi blokami), wielkość bloku zmienia się wraz ze zmianą zawartości, co umożliwia zapis jedynie nowo dodanych danych i referencję do następujących po nich danych uprzednio zapisanych.

Mimo większej efektywności pod względem osiąganego współczynnika kompresji, deduplikacja variable-block wymaga znacznie bardziej żmudnego przetwarzania danych niż fixed-block. Jest to o tyle problematyczne, iż w przypadku tego rodzaju globalnej kompresji nie ma możliwości prostej kontroli nad wielkością bloku. Co prawda średnie wielkości bloków mogą zostać predefiniowane, ale nie zmienia to faktu, iż pozostałe bloki mogą mieć rozmiar od pojedynczego bajtu aż do wielkości całego pliku. W rezultacie proces eliminacji duplikatów jest wolny.

Ogólną efektywność deduplikacji blokiem o zmiennej wielkości pogarszają także przypadki skrajnych wielkości bloków. Referencje bloków zbyt małych nie zajmują wymiernie mniej miejsca od duplikatów tych sekwencji. Z kolei rozmiar bloków zbyt dużych ogranicza użyteczność deduplikacji do poziomu eliminacji identycznych duplikatów (ang. Single-Instance Storage).