# XBUP - Dokumentace: Fragmentovatelná struktura

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis ...

O úroveň výše

### Obsah

1. Fragmentovatelná struktura
1.1. Popis řešení
1.2. Výhody řešení
1.3. Možné optimalizace
1.4. Problémy

### 1. Fragmentovatelná struktura

Jelikož formát sám o sobě nepodporuje fragmentovatelnost dle blokové struktury souborového systému, je vhodné pro tyto účely použít vhodný transformační blok. Tato technika pracuje tak, že datový blok interpretuje jako sekvenci bloků konstantní velikosti a umožňuje jejich řazení v libovolném pořadí, čímž umožňuje nesouvislou reprezentaci běžných bloků.

### 1.1. Popis řešení

Jedná se o transformační blok typu data-strom. Jednotlivé clustery konstatní délky jsou buď strukturální, nebo datové. První blok je kořenový strukturální. Navrhované varianta není pravděpodobně konečná

UBClusterIndex - Next Block
UBENatural - SubBlockPartSize
UBClusterIndex - First SubBlock
...
UBClusterIndex - Last SubBlock
UBNatural - DataPartSize
UBNatural - MainBlockPartSize
UBClusterIndex - First MainBlock
...
UBClusterIndex - Last MainBlock

Zatímco indexy na SubBlock odkazují na strukturální bloky, indexy na MainBlock odkazují na posloupnost datového bloku. Hodnota SubBlockPartSize rovna nekonečnu říká, že soubor je ekvivalentní datovému bloku, v opačném případě se jedná o uzlový/listový blok.

### 1.2. Výhody řešení

Uvedená technika přináší některé výhody, především je možné mnohem flexibilněji upravovat soubor, přidávat do něj další bloky na libovolné úrovni zanoření a měnit i jejich velikost.

- Možný nárůst či zmenšení bloku nevede k nutnosti přepracování celého souboru
- Efektivnější organizace snižuje počty nutných přístupů na disk

### 1.3. Možné optimalizace

Nízkou efektivitu řešení by mělo být možné vylepšit. Například zavedením bitové mapy využití bloků, používáním relativních hodnot indexů clusterů, nebo slučováním většího počtu malých bloků do jednoho. Také by mohlo být možné zavést kontrolní součty pro zvýšení robustnosti, či cachování některých hodnot pro vyšší efektivitu.

### 1.4. Problémy

Realizace tohoto řešení se také potýká s některými problémy.

- Jak zarovnat na celý blok diskového přístupu - zde by mělo být možné s výhodou využít SLRUB typu.
- Jak řešit problém, kdy hodnota Next Block je delší než velikost clusteru
- Jak určit datový vs. listový blok

Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2006-09-28