| | 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. |