iTweaks - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 9a790f78b6623fd5340369f71e8649cefbe2d4ec /scm/dedup/commit/9a790f78b6623fd5340369f71e8649cefbe2d4ec.gph bitreich.org 70 1parent 22ec348a2fff0a5f80a3bdb4fc1bc0ffd4aec838 /scm/dedup/commit/22ec348a2fff0a5f80a3bdb4fc1bc0ffd4aec838.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sun, 17 Feb 2019 00:14:18 +0000 Err bitreich.org 70 i Err bitreich.org 70 iTweaks Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 9 +++++---- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 5 insertions(+), 4 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/dedup.c b/dedup.c /scm/dedup/file/dedup.c.gph bitreich.org 70 i@@ -16,8 +16,9 @@ Err bitreich.org 70 i #define STOREF ".store" Err bitreich.org 70 i #define CACHEF ".cache" Err bitreich.org 70 i Err bitreich.org 70 i-#define BLKSIZ 65536 Err bitreich.org 70 i-#define WINSIZ 32 Err bitreich.org 70 i+#define BLKSIZ (8*1024*1024) Err bitreich.org 70 i+#define WINSIZ 4096 Err bitreich.org 70 i+#define HASHMSK ((1ul << 21) - 1) Err bitreich.org 70 i #define MDSIZ SHA256_DIGEST_LENGTH Err bitreich.org 70 i Err bitreich.org 70 i #define ROTL(x, y) (((x) << (y)) | ((x) >> (32 - (y)))) Err bitreich.org 70 i@@ -134,14 +135,14 @@ chunk_blk(uint8_t *buf, size_t size) Err bitreich.org 70 i /* Err bitreich.org 70 i * Chunking blocks is decided using a rolling hash + binary pattern. Err bitreich.org 70 i * The buzhash algorithm is used to "fingerprint" a fixed size window. Err bitreich.org 70 i- * Once the lower 13 bits of this fingerprint are all zeros, Err bitreich.org 70 i+ * Once the lower bits of this fingerprint are all zeros, Err bitreich.org 70 i * the block is chunked. Err bitreich.org 70 i * If the pattern can't be matched, then we return the buffer size. Err bitreich.org 70 i */ Err bitreich.org 70 i fp = buzh_init(buf, WINSIZ); Err bitreich.org 70 i for (i = 1; i < size - WINSIZ; i++) { Err bitreich.org 70 i fp = buzh_update(fp, buf[i - 1], buf[i + WINSIZ - 1], WINSIZ); Err bitreich.org 70 i- if ((fp & 0x00001fff) == 0) Err bitreich.org 70 i+ if ((fp & HASHMSK) == 0) Err bitreich.org 70 i return i + WINSIZ; Err bitreich.org 70 i } Err bitreich.org 70 i return size; Err bitreich.org 70 .