| 124 | One way to reduce the reconstruction overhead of coding |
| 125 | is to divide the file into M parts, and encode each part separately. |
| 126 | That way, if a packet is lost, only 1/M of the file needs to be reconstructed on the server. |
| 127 | |
| 128 | However, if one of these M parts is lost, the file is lost. |
| 129 | To remedy this, we can use coding at the top level as well: |
| 130 | in addition to the M parts, generate an additional K "checksum parts", |
| 131 | and encode these parts in the same way. |
| 132 | |
| 133 | If we use this 2-level encoding scheme with parameters M=40 and N=20, |
| 134 | we can recover from any 400 simultaneous host failures, |
| 135 | with a space overhead of 125%. |
| 136 | |
| 137 | The scheme can be extended to any number of levels of encoding. |
| 138 | |
| 141 | To achieve high reliability, we need to use fairly large values of coding's N and K parameters, |
| 142 | like 10-50. |
| 143 | This means that recovering from a packet loss requires uploading and downloading |
| 144 | 10-50 packets, which is a large overhead. |
| 145 | |
| 146 | We can potentially use replication at the bottom level to reduce this overhead. |
| 147 | Suppose, for example, that we use 2-fold replication for the bottom-level |
| 148 | packets of multi-level encoding. |
| 149 | Then, in many (and maybe even almost all) cases |
| 150 | we'll just have to do 1 upload and 2 download to restore the packet. |
| 151 | Although this doubles the client storage requirement, |
| 152 | it could potentially increase system capacity |
| 153 | by reducing network bandwidth at the server. |
| 154 | |
| 156 | |
| 157 | We have developed a simulator for VDAB. |
| 158 | The simulator models a set of hosts. |
| 159 | The parameters of the host population include: |
| 160 | |
| 161 | * Arrival rate of hosts |
| 162 | * Distribution of host lifetimes (currently exponential, with adjustable mean) |
| 163 | * Distribution of upload and download network bandwidth |
| 164 | * Distribution of amount of free disk space |
| 165 | |
| 166 | The simulator models the arrival of one or more files, |
| 167 | each with a given size. |
| 168 | |
| 169 | The simulator is able to model the following storage policies: |
| 170 | |
| 171 | * M-level coding |
| 172 | * Different values of N and K at each level of coding |
| 173 | * R-fold replication at the bottom level |
| 174 | |
| 175 | The simulator outputs: |
| 176 | * statistics of server disk space usage |
| 177 | * statistics of network bandwidth usage |
| 178 | * statistics of "vulnerability": how many host failures would be needed |
| 179 | to cause the loss of each file. |