Avoid CRC64 for Similarity IDs when using 256-bit hash.

This commit is contained in:
Moinak Ghosh 2013-06-29 19:42:45 +05:30
parent a2d74dab50
commit ae3ba0858c

View file

@ -1041,12 +1041,20 @@ process_blocks:
increment = cfg->chunk_cksum_sz / 2; increment = cfg->chunk_cksum_sz / 2;
if (increment * sub_i > length) if (increment * sub_i > length)
sub_i = length / increment; sub_i = length / increment;
if (increment/2 == sizeof (uint64_t)) {
for (j = 0; j<sub_i; j++) {
*((uint64_t *)sim_ck) = *((uint64_t *)tgt);
tgt += increment;
sim_ck += cfg->similarity_cksum_sz;
}
} else {
for (j = 0; j<sub_i; j++) { for (j = 0; j<sub_i; j++) {
crc = lzma_crc64(tgt, increment/2, 0); crc = lzma_crc64(tgt, increment/2, 0);
*((uint64_t *)sim_ck) = crc; *((uint64_t *)sim_ck) = crc;
tgt += increment; tgt += increment;
sim_ck += cfg->similarity_cksum_sz; sim_ck += cfg->similarity_cksum_sz;
} }
}
/* /*
* Begin shared index access and write segment metadata to cache * Begin shared index access and write segment metadata to cache