Commit graph

50 commits

Author SHA1 Message Date
Moinak Ghosh
c0b4aa0116 Many optimizations and changes to Segmented Global Dedupe.
Use chunk hash based similarity matching rather than content based.
Use sorting to order hash buffer rather than min-heap for better accuracy.
Use fast CRC64 for similarity hash for speed and lower memory requirements.
2013-04-21 18:11:16 +05:30
Moinak Ghosh
3b8a5813fd Many optimizations to segmented global dedupe.
Use chunk hash based cumulative similarity matching instead of chunk content.
2013-04-19 22:51:51 +05:30
Moinak Ghosh
426c0d0bf2 Properly cleanup global dedupe state. 2013-04-18 21:36:36 +05:30
Moinak Ghosh
8ae571124d Complete implementation for Segmented Global Deduplication. 2013-04-18 21:26:24 +05:30
Moinak Ghosh
a22b52cf08 Work in progress changes for Segmented Global Deduplication. 2013-04-14 23:51:54 +05:30
Moinak Ghosh
50251107de Work in progress changes for Segmented Global Deduplication. 2013-04-09 22:23:51 +05:30
Moinak Ghosh
3d7a179a77 Work in progress changes for scalable segmented global deduplication.
Allow user-specified environment setting to control in-memory index size.
2013-04-06 15:15:27 +05:30
Moinak Ghosh
c357452079 Implement global dedupe in pipe mode.
Update hash index calculations to use upto 75% memavail when file size is not known.
Use little-endian nonce format for Salsa20.
2013-03-29 15:18:25 +05:30
Moinak Ghosh
19b304f30c Add global index cleanup function.
Fix location of sem_wait().
More comments.
2013-03-25 21:04:16 +05:30
Moinak Ghosh
fbf4658635 Implement Global Deduplication. 2013-03-24 23:21:17 +05:30
Moinak Ghosh
876796be5c Work in progress changes for global dedupe. 2013-03-21 22:00:38 +05:30
Moinak Ghosh
b7fdeb08bc Work in progress global dedupe changes. 2013-03-20 22:47:03 +05:30
Moinak Ghosh
f8f23e5200 Major License text cleanup. 2013-03-07 20:26:48 +05:30
Moinak Ghosh
f89473d29c Fixes for issues/warnings reported in issue #4. 2013-02-15 22:53:17 +05:30
Moinak Ghosh
3e1737b4ab Use OpenMP parallelism when computing xxHashes for chunks. 2013-02-02 09:27:58 +05:30
Moinak Ghosh
af4c6e1d84 Reduce dedupe hash table collisions by half. 2013-01-31 00:38:41 +05:30
Moinak Ghosh
3d8f3ada1c Improve Deduplication performance by another 95%.
Start sliding window scanning near minimum chunk size boundaries to avoid scanning whole chunk.
2013-01-30 22:41:13 +05:30
Moinak Ghosh
5c8704c5bb Improve Deduplication throughtput by 90%.
Use SSE4 register as sliding window for default 16-byte window size.
Use local variable for sliding window position to avoid spurios memory access in non-SIMD case.
Avoid computing breakpoint check value if processed length < minimum block length.
2013-01-22 15:54:42 +05:30
Moinak Ghosh
3888c8d316 Many optimization tweaks
Optimize Rabin Deduplication and Bsdiff
Vectorize XXHash using SE4
2013-01-20 22:02:26 +05:30
Moinak Ghosh
455c8107d5 Use pre-increment for shorter instruction length and slight speed. 2013-01-17 22:54:30 +05:30
Moinak Ghosh
39dbc4be43 Implement algo-specific minimum distance match for Delta Compression. 2013-01-14 13:20:07 +05:30
Moinak Ghosh
d49a088eea Fixes and performance improvements for Dedupe Delta Compression
Avoid using fingerprints in minhash computation and fix write amplification
Modify min-heap to use 64bit values
Improve bsdiff performance
Fix pointer comparison in bsdiff
Use 32bit offsets in bsdiff to reduce memory usage
Improve Zero RLE Encoder performance
Add more buffer overflow checks in Zero RLE Decoder
2013-01-13 22:04:59 +05:30
Moinak Ghosh
d9eb82e0e8 Fix numeric parsing.
Fix dedupe bug introduced in last commit.
Reset valid flag when resetting dedupe context.
Cleanup test suites.
Do not abort test suite on failure of a test case.
2013-01-03 00:27:18 +05:30
Moinak Ghosh
13d9378acd Update to latest XXHash version. 2012-12-31 11:53:47 +05:30
Moinak Ghosh
28224d29d3 Improve Dedupe performance.
Add more debug timing stats.
Change default checksum to Keccak 256 (SIMD version 4x faster than Skein).
Fix compiler warning in allocator code.
2012-12-29 23:43:41 +05:30
Moinak Ghosh
26a4f42506 Introduce strict compiler flags and fix scores of warnings/issues.
Avoid different optimization flags for Dedupe sources.
Fix liberal mixing of uint64_t and int64_t (should all be uint64_t).
Fix corner case crash when decompressing.
2012-12-27 23:06:48 +05:30
Moinak Ghosh
a43fdd7d2c Improve Delta2 scanning speed and effectiveness.
Add destination buffer overflow check in Delta2.
Add rough speed computation.
2012-12-23 00:44:56 +05:30
Moinak Ghosh
224fb529e9 Get rid of size_t in places where 64-bitness is assumed. 2012-12-09 10:15:06 +05:30
Moinak Ghosh
d250322490 Fix issues with error handling.
Add new tests for out of range values and corrupted file.
2012-11-24 23:53:07 +05:30
Moinak Ghosh
d054e0f713 Zlib optimizations. Use raw deflate streams to avoid unnecessary adler32.
Change some function signatures to improve algo init function behavior.
Fix corner case dedupe bug in error handling flow.
Bump archive version signature.
2012-11-22 21:02:50 +05:30
Moinak Ghosh
393ced991a A couple of minor cleanups. 2012-11-18 20:20:16 +05:30
Moinak Ghosh
b2cbf0699e Use fixed rolling-hash mask for better block size approximation. 2012-11-11 14:58:39 +05:30
Moinak Ghosh
eacbf207aa Tweak chunking parameters for better block size distribution and dedupe ratio. 2012-11-08 19:41:33 +05:30
Moinak Ghosh
e437390e53 Add some more debug mode info. 2012-11-07 22:55:14 +05:30
Moinak Ghosh
c5ebe1f30a Portability to Debian based distros.
Enable SSE4/AVX detection for AMD platforms (Bulldozer has both).
Portable long long int print formatting to silence gcc 4.6 warnings.
2012-10-21 21:03:07 +05:30
Moinak Ghosh
9475ccc3d6 Fix polynomial computation.
Fix incorrect block length when doing fixed-block dedupe.
2012-10-02 00:20:44 +05:30
Moinak Ghosh
0019efbadb Adjust break pattern check mask for closer approximation to average block size.
Remove unused structure member.
2012-09-29 23:31:45 +05:30
Moinak Ghosh
24e6f4e629 Switch to multiplicative rolling hash for good distribution properties. 2012-09-29 00:09:49 +05:30
Moinak Ghosh
8f8af7ed6b Update adaptive mode heuristic based on algorithms.
Remove incorrect check in PPMd decompression code.
More refactoring of variable names.
2012-09-27 22:29:08 +05:30
Moinak Ghosh
449dc35675 Speed up adaptive modes by using heuristics to select compression algorithm.
Select similarity percentage based on dedupe block size for effectiveness.
2012-09-26 19:47:32 +05:30
Moinak Ghosh
333b7b011e Fix check for size reduction in dedupe.
Tweak debug message for clarity.
2012-09-25 23:24:33 +05:30
Moinak Ghosh
3544a8c708 Fix polynomial table computation.
Change hashing and length bias to reduce hashtable bucket collisions.
Add support for user-selectable 60% or 40% similarity for Delta Compression.
Overall slight speedup.
2012-09-24 22:20:27 +05:30
Moinak Ghosh
8386e72566 Rewrite core dedupe logic to simplify code and improve performance.
Hashtable based chunk-level deduplication instead of Quicksort.
Fix a corner case bug in Dedupe decompression.
2012-09-23 14:57:09 +05:30
Moinak Ghosh
99a8e4cd98 Speed up Hash computation for dedupe blocks.
Add missing initialization of sliding window.
Update help text.
2012-09-19 20:29:44 +05:30
Moinak Ghosh
e3befd9e16 Add support for Fixed-Block deduplication.
More refactoring of symbol names.
2012-09-16 11:12:58 +05:30
Moinak Ghosh
b9355a5dcc Reduce dedupe loop checks for slight speed edge.
Beginnings of Fixed-block dedupe.
Update variable name for clarity.
2012-09-15 11:14:58 +05:30
Moinak Ghosh
f3f472b860 Implement K-min-values Sketch for Similarity detection. 2012-09-11 20:26:36 +05:30
Moinak Ghosh
e6f042aaf8 Allow user-specified minimum Dedupe block size.
Compute similarity sketch only if Delta Compression enabled.
2012-09-05 22:43:54 +05:30
Moinak Ghosh
560fa85aab Fix secondary sketch computation, some more accuracy in diff detection. 2012-09-04 23:28:02 +05:30
Moinak Ghosh
262566b59a Add xxHash for Rabin block checksums, slightly faster than CRC64.
Fix missing initialization of character counts table.
Some file reorganization.
2012-09-02 20:40:32 +05:30
Renamed from rabin/rabin_polynomial.c (Browse further)