iRework stats - 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 99c3b317f9e0558d624235439a4162306f8e549d /scm/dedup/commit/99c3b317f9e0558d624235439a4162306f8e549d.gph bitreich.org 70 1parent b1fd149a54efd7fe0d3bf4dcd5b3c48467d4434f /scm/dedup/commit/b1fd149a54efd7fe0d3bf4dcd5b3c48467d4434f.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Tue, 19 Feb 2019 10:17:52 +0000 Err bitreich.org 70 i Err bitreich.org 70 iRework stats Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M dedup.c | 71 ++++++++++++++++--------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 37 insertions(+), 34 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@@ -25,7 +25,7 @@ Err bitreich.org 70 i #define MDSIZE SHA256_DIGEST_LENGTH Err bitreich.org 70 i Err bitreich.org 70 i /* file format version */ Err bitreich.org 70 i-#define VER_MIN 0 Err bitreich.org 70 i+#define VER_MIN 1 Err bitreich.org 70 i #define VER_MAJ 0 Err bitreich.org 70 i Err bitreich.org 70 i #define ROTL(x, y) (((x) << (y)) | ((x) >> (32 - (y)))) Err bitreich.org 70 i@@ -39,8 +39,12 @@ struct stats { Err bitreich.org 70 i uint64_t orig_size; Err bitreich.org 70 i uint64_t comp_size; Err bitreich.org 70 i uint64_t dedup_size; Err bitreich.org 70 i+ uint64_t min_blk_size; Err bitreich.org 70 i+ uint64_t max_blk_size; Err bitreich.org 70 i+ uint64_t nblks; Err bitreich.org 70 i uint64_t cache_hits; Err bitreich.org 70 i uint64_t cache_misses; Err bitreich.org 70 i+ uint64_t reserved[4]; Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i /* index file header */ Err bitreich.org 70 i@@ -48,6 +52,7 @@ struct enthdr { Err bitreich.org 70 i uint64_t flags; Err bitreich.org 70 i uint64_t nents; Err bitreich.org 70 i uint64_t store_size; Err bitreich.org 70 i+ uint64_t reserved[4]; Err bitreich.org 70 i struct stats st; Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i@@ -208,7 +213,7 @@ decomp(uint8_t *in, uint8_t *out, size_t insize, size_t outsize) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i-print_md(const uint8_t *md, size_t size) Err bitreich.org 70 i+print_md(uint8_t *md, size_t size) Err bitreich.org 70 i { Err bitreich.org 70 i size_t i; Err bitreich.org 70 i Err bitreich.org 70 i@@ -217,6 +222,27 @@ print_md(const uint8_t *md, size_t size) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i+print_stats(struct stats *st) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ fprintf(stderr, "original size: %llu bytes\n", Err bitreich.org 70 i+ (unsigned long long)st->orig_size); Err bitreich.org 70 i+ fprintf(stderr, "compressed size: %llu bytes\n", Err bitreich.org 70 i+ (unsigned long long)st->comp_size); Err bitreich.org 70 i+ fprintf(stderr, "deduplicated size: %llu bytes\n", Err bitreich.org 70 i+ (unsigned long long)st->dedup_size); Err bitreich.org 70 i+ fprintf(stderr, "min/avg/max block size: %llu/%llu/%llu\n", Err bitreich.org 70 i+ (unsigned long long)st->min_blk_size, Err bitreich.org 70 i+ (unsigned long long)st->dedup_size / st->nblks, Err bitreich.org 70 i+ (unsigned long long)st->max_blk_size); Err bitreich.org 70 i+ fprintf(stderr, "number of blocks: %llu\n", Err bitreich.org 70 i+ (unsigned long long)st->nblks); Err bitreich.org 70 i+ fprintf(stderr, "total cache hits: %llu\n", Err bitreich.org 70 i+ (unsigned long long)st->cache_hits); Err bitreich.org 70 i+ fprintf(stderr, "total cache misses: %llu\n", Err bitreich.org 70 i+ (unsigned long long)st->cache_misses); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+void Err bitreich.org 70 i str2bin(char *s, uint8_t *d) Err bitreich.org 70 i { Err bitreich.org 70 i size_t i, size = strlen(s) / 2; Err bitreich.org 70 i@@ -488,7 +514,13 @@ dedup(int fd, char *msg) Err bitreich.org 70 i cache_dirty = 1; Err bitreich.org 70 i Err bitreich.org 70 i enthdr.st.dedup_size += bdescr.size; Err bitreich.org 70 i+ enthdr.st.nblks++; Err bitreich.org 70 i enthdr.st.cache_misses++; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (bdescr.size > enthdr.st.max_blk_size) Err bitreich.org 70 i+ enthdr.st.max_blk_size = bdescr.size; Err bitreich.org 70 i+ if (bdescr.size < enthdr.st.min_blk_size) Err bitreich.org 70 i+ enthdr.st.min_blk_size = bdescr.size; Err bitreich.org 70 i } else { Err bitreich.org 70 i ent->bdescr[ent->nblks++] = bdescr; Err bitreich.org 70 i enthdr.st.cache_hits++; Err bitreich.org 70 i@@ -651,11 +683,6 @@ void Err bitreich.org 70 i init_cache(void) Err bitreich.org 70 i { Err bitreich.org 70 i uint64_t nents, i; Err bitreich.org 70 i- uint64_t min, max, avg; Err bitreich.org 70 i- Err bitreich.org 70 i- min = comp_size(BLKSIZE); Err bitreich.org 70 i- max = 0; Err bitreich.org 70 i- avg = 0; Err bitreich.org 70 i Err bitreich.org 70 i nents = cache_nents(); Err bitreich.org 70 i xlseek(cfd, 0, SEEK_SET); Err bitreich.org 70 i@@ -666,20 +693,6 @@ init_cache(void) Err bitreich.org 70 i if (xread(cfd, ¢->bdescr, sizeof(cent->bdescr)) == 0) Err bitreich.org 70 i errx(1, "read: unexpected EOF"); Err bitreich.org 70 i add_cent(cent); Err bitreich.org 70 i- Err bitreich.org 70 i- if (cent->bdescr.size > max) Err bitreich.org 70 i- max = cent->bdescr.size; Err bitreich.org 70 i- if (cent->bdescr.size < min) Err bitreich.org 70 i- min = cent->bdescr.size; Err bitreich.org 70 i- avg += cent->bdescr.size; Err bitreich.org 70 i- } Err bitreich.org 70 i- avg /= nents; Err bitreich.org 70 i- Err bitreich.org 70 i- if (verbose) { Err bitreich.org 70 i- fprintf(stderr, "min/avg/max block size: %llu/%llu/%llu\n", Err bitreich.org 70 i- (unsigned long long)min, Err bitreich.org 70 i- (unsigned long long)avg, Err bitreich.org 70 i- (unsigned long long)max); Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i@@ -720,19 +733,7 @@ init(void) Err bitreich.org 70 i } else { Err bitreich.org 70 i enthdr.flags = (VER_MAJ << 8) | VER_MIN; Err bitreich.org 70 i xwrite(ifd, &enthdr, sizeof(enthdr)); Err bitreich.org 70 i- } Err bitreich.org 70 i- Err bitreich.org 70 i- if (verbose) { Err bitreich.org 70 i- fprintf(stderr, "original size: %llu bytes\n", Err bitreich.org 70 i- (unsigned long long)enthdr.st.orig_size); Err bitreich.org 70 i- fprintf(stderr, "compressed size: %llu bytes\n", Err bitreich.org 70 i- (unsigned long long)enthdr.st.comp_size); Err bitreich.org 70 i- fprintf(stderr, "deduplicated size: %llu bytes\n", Err bitreich.org 70 i- (unsigned long long)enthdr.st.dedup_size); Err bitreich.org 70 i- fprintf(stderr, "total cache hits: %llu\n", Err bitreich.org 70 i- (unsigned long long)enthdr.st.cache_hits); Err bitreich.org 70 i- fprintf(stderr, "total cache misses: %llu\n", Err bitreich.org 70 i- (unsigned long long)enthdr.st.cache_misses); Err bitreich.org 70 i+ enthdr.st.min_blk_size = comp_size(BLKSIZE); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i if (cache_nents() != 0) Err bitreich.org 70 i@@ -744,6 +745,8 @@ init(void) Err bitreich.org 70 i void Err bitreich.org 70 i term(void) Err bitreich.org 70 i { Err bitreich.org 70 i+ if (verbose) Err bitreich.org 70 i+ print_stats(&enthdr.st); Err bitreich.org 70 i flush_cache(); Err bitreich.org 70 i free_cache(); Err bitreich.org 70 i Err bitreich.org 70 .