CSE5313 Coding and information theory for data science (Lecture 12)
Challenge 1: Reconstruction
- Minimize reconstruction bandwidth.
Challenge 2: Repair
- Maintaining data consistency.
- Failed servers must be repaired:
- By contacting few other servers (locality, due to geographical constraints).
- By minimizing bandwidth.
Challenge 3: Storage overhead
- Minimize space consumption.
- Minimize redundancy.
Code for storage systems
Naive solution: Replication
Locality is 1 (by copying from another server).
This gives the optimal reconstruction bandwidth.
Use codes to improve storage efficiency
Locality is , high bandwidth.
Parity codes
Let be the data blocks, take extra server to store the parity.
Reconstruction:
Optimal for reconstruction bandwidth. Only need servers to reconstruct the file.
Overhead:
Only need one additional server
Repair:
Any server failed, reconstruct from the other servers.
Reed-Solomon codes
Fragment the file .
Need servers to store the file.
Reconstruction:
Any servers can reconstruct the file.
Overhead:
Need servers to store the file.
Repair:
Worse, need all servers to reconstruct the file.
New codes for storage systems
EVENODD code
- One of the first storage specific codes.
Can a xor only code be built that enables reconstruction if two disks are missing?
locality/bandwidth problem for next lecture.
For prime , partition each with bits.
Store in disks .
Add two redundant disks .
- is the parity of row .
- , first we defined , then
Note that the diagonal can be extracted from and .
Goal: Reconstruct if any two disks are missing.
- If missing, nothing to do.
- If are missing for , decode like a parity code.
- If are missing for , similar, using diagonal parities.
The interesting case: are missing for .
Using the skill you solve sudoku puzzles, we can find the missing values.
First we recover the diagonal from and .
Then we solve for the row by and the diagonal by .
Proof for why it always works
There are rows, including a ghost row with full s.
is cyclic of prime size, any non-zero element is a generator.
When moving from diagonal to horizontal, we are moving some offset from the diagonal, which are always generator.
This is an example of array code:
The message is a matrix in .
The codeword is a matrix in .
Encoding is done over .
Locally Recoverable Codes
Locality: when a node fails,
- A newcomer node joins the system.
- The newcomer contacts a “small” number of helper nodes with the message “repairing ”.
- Each of the helper nodes sends something to the newcomer.
- The newcomer aggregates the responses to find .
Notes:
- No adversarial behavior.
- No privacy issues.
- No concern about bandwidth (for now).
Research question:
- How small can the “small number of nodes” be?
- How does that affect the rate/minimum distance of the code?
- How to build codes with this capability?
Definition of locally recoverable code
An code is called -locally recoverable if
- every codeword symbol has a recovering set (),
- such that is computable from for all .
- for every .
Notes:
- From nodes, we can reconstruct the entire file, always assume .
- We want .
- does not depend on , nor on the codewords , only on . (Need to repair without knowing .)
Bounds for Locally Recoverable Codes
Let be an code with -locally recoverable, with minimum distance .
Bound 1: .
Bound 2: .
Notes:
For , bound 2 becomes .
- The natural extension of singleton bound.
For , bound 1 becomes .
- The duplication code is trivial code for this bound
For , bound 2 becomes .
- The duplication code is trivial code for this bound
Bound 1
Turan’s Lemma
Let be a graph with vertices. Then there exists an induced directed acyclic subgraph (DAG) of on at least nodes, where is the out-degree of vertex .
Directed graphs have large acyclic subgraphs.
Proof via the probabilistic method
Useful for showing the existence of a large acyclic subgraph, but not for finding it.
Show that , and therefore there exists with , using pigeonhole principle.
For a permutation of , define .
Let if each of the outgoing edges from connect to a node with .
In other words, we select a subset of nodes such that each node in has an outgoing edge to a node in with a larger index. All edges going to right.
This graph is clearly acyclic.
Choose at random and Let be a random variable.
Let be the indicator random variable for .
So .
Using linearity of expectation, we have
is the probability that places before any of its out-neighbors.
For each node, there are ways to place the node and its out-neighbors.
For each node, there are ways to place the out-neighbors.
So, .
Continue next time.