2 research outputs found

    Fragmentation in storage systems with duplicate elimination

    Get PDF
    Deduplication inevitably results in data fragmentation, because logically continuous data is scattered across many disk locations. Even though this significantly increases restore time from backup, the problem is still not well examined. In this work I close this gap by designing algorithms that reduce negative impact of fragmentation on restore time for two major types of fragmentation: internal and inter-version.Internal stream fragmentation is caused by the blocks appearing many times within a single backup. Such phenomenon happens surprisingly often and can result in even three times lower restore bandwidth. With an algorithm utilizing available forward knowledge to enable efficient caching I managed to improve this result on average by 62%-88% with only about 5% extra memory used. Although these results are achieved with limited forward knowledge, they are very close to the ones measured with no such limitation.Inter-version fragmentation is caused by duplicates from previous backups of the same backup set. Since such duplicates are very common due to repeated full backups containing a lot of unchanged data, this type of fragmentation may double the restore time after even a few backups. The context-based rewriting algorithm minimizes this effect by selectively rewriting a small percentage of duplicates during backup, limiting the bandwidth drop from 21.3% to 2.48% on average with only small increase in writing time and temporary space overhead.The two algorithms combined end up in a very effective symbiosis resulting in an average 142% restore bandwidth increase with standard 256MB of per-stream cache memory. In many cases such setup achieves results close to the theoretical maximum achievable with unlimited cache size. Moreover, all the above experiments where performed assuming only one spindle, even though in majority of today鈥檚 systems many spindles are used. In a sample setup with ten spindles, the restore bandwidth results are on average 5 times higher than in standard LRU case.Fragmentacja jest nieuniknion膮 konsekwencj膮 deduplikacji, poniewa偶 pojedynczy strumie艅 danych rozrzucany jest pomi臋dzy wiele lokalizacji na dysku. Fakt ten powoduje znacz膮ce wyd艂u偶enie czasu odzyskiwania danych z kopii zapasowych. Mimo to, problem wci膮偶 nie jest dobrze zbadany. Niniejsza praca wype艂nia t臋 luk臋 poprzez propozycje algorytm贸w, kt贸re redukuj膮 negatywny wp艂yw fragmentacji na czas odczytu dla dw贸ch najwa偶niejszych jej rodzaj贸w: wewn臋trznej fragmentacji strumienia oraz fragmentacji pomi臋dzy r贸偶nymi wersjami danych.Wewn臋trzna fragmentacja strumienia jest spowodowana blokami powtarzaj膮cymi si臋 wielokrotnie w pojedynczym strumieniu danych. To zjawisko zdarza si臋 zaskakuj膮co cz臋sto i powoduje nawet trzykrotnie ni偶sz膮 wydaj-no艣膰 odczytu. Proponowany w tej pracy algorytm efektywnego zarz膮dzania pami臋ci膮, wykorzystuj膮cy dost臋pn膮 wiedz臋 o danych, jest w stanie podnie艣膰 wydajno艣膰 odczytu o 62-88%, u偶ywaj膮c przy tym tylko 5% dodatkowej pami臋ci.Fragmentacja pomi臋dzy r贸偶nymi wersjami danych jest spowodowana duplikatami pochodz膮cymi z wcze艣niejszych zapis贸w tego samego zbioru danych. Poniewa偶 pe艂ne kopie zapasowe tworzone s膮 regularnie i zawieraj膮 du偶e ilo艣ci powtarzaj膮cych si臋 danych, takie duplikaty wyst臋puj膮 bardzo cz臋sto. W przypadku p贸藕niejszego odczytu, ich obecno艣膰 mo偶e powodowa膰 nawet podwojenie czasu potrzebnego na odzyskanie danych, po utworzeniu zaledwie kilku kopii zapasowych. Algorytm przepisywania kontekstowego minimalizuje ten efekt przez selektywne przepisywanie ma艂ej ilo艣ci duplikat贸w podczas zapisu. Takie post臋powanie jest w stanie ograniczy膰 艣redni spadek wydajno艣ci odczytu z 21,3% do 2,48%, kosztem minimalnego zwi臋kszenia czasu zapisudanych i wymagania niewielkiej przestrzeni dyskowej na pami臋膰 tymczasow膮.Obydwa algorytmy u偶yte razem dzia艂aj膮 jeszcze wydajniej, poprawiaj膮c przepustowo艣膰 odczytu przeci臋tnie o 142% przy standardowej ilo艣ci 256MB pami臋ci cache dla ka偶dego strumienia. Dodatkowo, poniewa偶 powy偶sze wyniki zak艂adaj膮 odczyt z jednego dysku, przeprowadzone zosta艂y testy symuluj膮ce korzystanie z przepustowo艣ci wielu dysk贸w, gdy偶 takie konfiguracje s膮 bardzo cz臋ste w dzisiejszych systemach. Dla przyk艂adu, u偶ywaj膮c dzieci臋ciu dysk贸w i proponowanych algorytm贸w, mo偶na osi膮gn膮膰 艣rednio pi臋ciokrotnie wy偶sz膮 wydajno艣膰 ni偶 w standardowym podej艣ciu z algorytmem typu LRU
    corecore