diff --git a/Erasure-coding-for-warm-storage.md b/Erasure-coding-for-warm-storage.md index dd5d1a8..4704e14 100644 --- a/Erasure-coding-for-warm-storage.md +++ b/Erasure-coding-for-warm-storage.md @@ -21,6 +21,8 @@ The default command is `ec.encode -fullPercent=95 -quietFor=1h`. It will find vo ### Data Repair The default command is `ec.rebuild -force`. If disk fails or server fails, some data shards are lost. With erasure coding, we can recover the lost data shards from remaining data shards. +The data repair happens for the whole volume, instead of one file at a time. It is much more efficient. + ### EC data balancing With servers added or removed, some data shards may not be laid out optimally. For example, one volume's 5 data shards could be on the same server. If the server goes down, the volume would be unrepairable or part of the data is lost permanently. @@ -29,6 +31,6 @@ The default command is `ec.balance -force`. It will try to spread the data shard ## How the read works? When all data shards are online, the read are randomly assigned to one volume server (A) that has at least one data shard. Server A will read its copy of index file, and locate the volume server (B), and read from server B for the file. - +In case of missing data shards or read failures from server B, server A will try to collect as many pieces of data as possible from the remaining servers, and compute the required data. ## Read Performance