From d2b7e65ec0c35c4ee16f28f449553d90fb88fa6a Mon Sep 17 00:00:00 2001 From: Vikas Gorur Date: Thu, 17 Sep 2009 05:56:31 +0000 Subject: cluster/afr: Add the "diff" self-heal algorithm. The "diff" self-heal algorithm works as follows: For each block: Compute MD5 checksum on source and all sinks If checksum on a sink differs from source: Read block from source and write to sinks Signed-off-by: Anand V. Avati --- xlators/cluster/afr/src/afr-self-heal-algorithm.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'xlators/cluster/afr/src/afr-self-heal-algorithm.h') diff --git a/xlators/cluster/afr/src/afr-self-heal-algorithm.h b/xlators/cluster/afr/src/afr-self-heal-algorithm.h index 646fd2ee7c1..8998ce8883d 100644 --- a/xlators/cluster/afr/src/afr-self-heal-algorithm.h +++ b/xlators/cluster/afr/src/afr-self-heal-algorithm.h @@ -29,6 +29,14 @@ struct afr_sh_algorithm { afr_sh_algo_fn fn; }; -struct afr_sh_algorithm afr_self_heal_algorithms[1]; +struct afr_sh_algorithm afr_self_heal_algorithms[2]; + +typedef struct { + uint8_t *checksum; /* array of MD5 checksums for each child + Each checksum is MD5_DIGEST_LEN bytes long */ + + unsigned char *write_needed; + size_t block_size; +} afr_sh_algo_diff_private_t; #endif /* __AFR_SELF_HEAL_ALGORITHM_H__ */ -- cgit