]>
git.ipfire.org Git - thirdparty/zstd.git/log
Nick Terrell [Thu, 3 Aug 2017 21:05:01 +0000 (14:05 -0700)]
Fix compression failure on incompressible data
If the destination buffer is the minimum allowed size in
`ZSTD_compressSequences()` (2^17), then if the block isn't compressible
compression might fail with `dstSize_tooSmall`, when it should instead emit
a raw uncompressed block.
Additionally, `ZSTD_compressLiterals()` implicitly called
`ZSTD_noCompressLiterals()` if Huffman compression failed. Make that
explicit.
Yann Collet [Sat, 29 Jul 2017 00:07:21 +0000 (17:07 -0700)]
Merge pull request #758 from stellamplau/ldm
Add working prototype of a long distance matcher
Stella Lau [Fri, 28 Jul 2017 00:14:05 +0000 (17:14 -0700)]
Return error code in verify() and minor code cleanup
Stella Lau [Thu, 27 Jul 2017 22:49:46 +0000 (15:49 -0700)]
Fix typo
Stella Lau [Thu, 27 Jul 2017 22:37:37 +0000 (15:37 -0700)]
Add checks in initialization code
Stella Lau [Thu, 27 Jul 2017 18:11:35 +0000 (11:11 -0700)]
Update README
Yann Collet [Thu, 27 Jul 2017 17:00:10 +0000 (10:00 -0700)]
Merge pull request #753 from paulcruz74/adapt-approach-3
adaptive compression v1
Paul Cruz [Thu, 27 Jul 2017 00:02:47 +0000 (17:02 -0700)]
remove unused variable, add documentation for context fields
Stella Lau [Wed, 26 Jul 2017 23:43:25 +0000 (16:43 -0700)]
Allow HASH_ONLY_EVERY_LOG to be configured in ldm.h
Paul Cruz [Wed, 26 Jul 2017 23:40:05 +0000 (16:40 -0700)]
fix leaky abstraction regarding measuring completion
Paul Cruz [Wed, 26 Jul 2017 22:52:15 +0000 (15:52 -0700)]
added definitions for conversion constants, moved forced compression check to top of adaptCompressionLevel, used ZSTD_BLOCKSIZE_MAX
Paul Cruz [Wed, 26 Jul 2017 21:29:59 +0000 (14:29 -0700)]
set the window log value before performing compression
Stella Lau [Wed, 26 Jul 2017 20:18:53 +0000 (13:18 -0700)]
Add README and clean up code
Paul Cruz [Wed, 26 Jul 2017 17:34:48 +0000 (10:34 -0700)]
moved reset of completion to right after wait
Paul Cruz [Wed, 26 Jul 2017 17:20:29 +0000 (10:20 -0700)]
change to >= convergence counter
Paul Cruz [Wed, 26 Jul 2017 17:05:10 +0000 (10:05 -0700)]
decrease completion requirements for change, move create thread wait, merge cases where compression thread should wait
Stella Lau [Wed, 26 Jul 2017 01:13:27 +0000 (18:13 -0700)]
Allow parameters to be modified from a separate file
Paul Cruz [Wed, 26 Jul 2017 00:47:02 +0000 (17:47 -0700)]
building on readme, added another help tip in the menu
Paul Cruz [Tue, 25 Jul 2017 23:55:16 +0000 (16:55 -0700)]
adding more to readme
Paul Cruz [Tue, 25 Jul 2017 23:03:43 +0000 (16:03 -0700)]
updated progress bar with better representation of time, added const
Paul Cruz [Tue, 25 Jul 2017 22:26:26 +0000 (15:26 -0700)]
changing time units to seconds
Stella Lau [Tue, 25 Jul 2017 22:17:36 +0000 (15:17 -0700)]
Rename and remove unneeded files
Paul Cruz [Tue, 25 Jul 2017 21:53:40 +0000 (14:53 -0700)]
updated const values, added more comments
Yann Collet [Tue, 25 Jul 2017 21:39:32 +0000 (14:39 -0700)]
Merge pull request #776 from terrelln/dev
[libzstd] Fix CHECK_V_F() macro
Paul Cruz [Tue, 25 Jul 2017 21:31:48 +0000 (14:31 -0700)]
removed old debug statements no longer being used
Paul Cruz [Tue, 25 Jul 2017 21:26:55 +0000 (14:26 -0700)]
progress bar -- don't print num jobs, time elapsed shown in seconds
Paul Cruz [Tue, 25 Jul 2017 21:08:39 +0000 (14:08 -0700)]
moved debug statements to a compiler flag
Nick Terrell [Tue, 25 Jul 2017 19:52:01 +0000 (12:52 -0700)]
[libzstd] Fix CHECK_V_F macros
Paul Cruz [Tue, 25 Jul 2017 18:16:27 +0000 (11:16 -0700)]
started using decrease cooldown so that compression level would not decrease several times in a row
Paul Cruz [Tue, 25 Jul 2017 17:32:14 +0000 (10:32 -0700)]
created independent function for controlling how completion relates to compression level change
Paul Cruz [Tue, 25 Jul 2017 17:01:10 +0000 (10:01 -0700)]
added mechanism for getting rid of spikes
Paul Cruz [Mon, 24 Jul 2017 23:26:20 +0000 (16:26 -0700)]
added help statement for -p, switched it to hide progress bar now that progress bar is default
Paul Cruz [Mon, 24 Jul 2017 23:19:07 +0000 (16:19 -0700)]
add quiet option, make progress bar default
Stella Lau [Mon, 24 Jul 2017 22:26:44 +0000 (15:26 -0700)]
Experiment with not using a checksum
Paul Cruz [Mon, 24 Jul 2017 22:14:58 +0000 (15:14 -0700)]
compression thread should take measurements independently based on whether or not the create/write thread will actually bottleneck performance
Paul Cruz [Mon, 24 Jul 2017 22:06:11 +0000 (15:06 -0700)]
adding more debug
Paul Cruz [Mon, 24 Jul 2017 21:40:23 +0000 (14:40 -0700)]
updating debug statements again
Paul Cruz [Mon, 24 Jul 2017 20:47:39 +0000 (13:47 -0700)]
changing position of endline for debug
Stella Lau [Mon, 24 Jul 2017 20:22:00 +0000 (13:22 -0700)]
Minor code cleanup
Stella Lau [Mon, 24 Jul 2017 19:40:59 +0000 (12:40 -0700)]
Deduplicate code
Stella Lau [Mon, 24 Jul 2017 19:05:43 +0000 (12:05 -0700)]
Experiment with eviction policies and minor code cleanup
Paul Cruz [Mon, 24 Jul 2017 18:01:36 +0000 (11:01 -0700)]
updated comments and debug statements
Stella Lau [Mon, 24 Jul 2017 17:18:58 +0000 (10:18 -0700)]
Minor clean up
Stella Lau [Fri, 21 Jul 2017 17:44:39 +0000 (10:44 -0700)]
Fix overflow bug when calculating hash
Stella Lau [Thu, 20 Jul 2017 23:51:01 +0000 (16:51 -0700)]
Experiment with 64-bit hash insertion policy
Stella Lau [Thu, 20 Jul 2017 23:50:06 +0000 (16:50 -0700)]
Experiment with 64-bit hash and checksum
Paul Cruz [Sun, 23 Jul 2017 21:09:16 +0000 (14:09 -0700)]
reduced competition for completion mutex by separating mutex use based on which values is updated
Paul Cruz [Sun, 23 Jul 2017 17:18:54 +0000 (10:18 -0700)]
change how completion is measured in compression thread
Paul Cruz [Sat, 22 Jul 2017 01:02:55 +0000 (18:02 -0700)]
removed useless measurements
Paul Cruz [Sat, 22 Jul 2017 00:49:39 +0000 (17:49 -0700)]
switched over to model where reading only waits on compression thread
Paul Cruz [Fri, 21 Jul 2017 23:05:01 +0000 (16:05 -0700)]
taking the maximum of the completion level reads in order to determine which one was waiting more
Paul Cruz [Fri, 21 Jul 2017 21:06:24 +0000 (14:06 -0700)]
updating debug statements
Paul Cruz [Fri, 21 Jul 2017 20:38:24 +0000 (13:38 -0700)]
measure multiple completion levels during each wait
Paul Cruz [Fri, 21 Jul 2017 16:30:24 +0000 (09:30 -0700)]
added bounding to compression level change
Paul Cruz [Fri, 21 Jul 2017 16:26:35 +0000 (09:26 -0700)]
added priority decision making for adapt compression level
Paul Cruz [Fri, 21 Jul 2017 01:45:33 +0000 (18:45 -0700)]
semi working version that stabilizes
Yann Collet [Fri, 21 Jul 2017 01:39:04 +0000 (18:39 -0700)]
fixed minor warning on unused variable in shell function
Paul Cruz [Thu, 20 Jul 2017 23:38:02 +0000 (16:38 -0700)]
fixed bug where writeSize could be zero
Paul Cruz [Thu, 20 Jul 2017 23:19:16 +0000 (16:19 -0700)]
reworked adaptCompressionLevel to only account for completion information
Yann Collet [Thu, 20 Jul 2017 22:57:55 +0000 (15:57 -0700)]
Visual blind fix 2
Yann Collet [Thu, 20 Jul 2017 22:12:21 +0000 (15:12 -0700)]
Merge branch 'dev' of github.com:facebook/zstd into dev
Yann Collet [Thu, 20 Jul 2017 22:11:56 +0000 (15:11 -0700)]
fixed fuzzer test for non OS-X platforms
Yann Collet [Thu, 20 Jul 2017 21:47:26 +0000 (14:47 -0700)]
Merge pull request #773 from terrelln/lk-v3
[linux] Update patches for v3
Nick Terrell [Thu, 20 Jul 2017 20:33:55 +0000 (13:33 -0700)]
[linux] Update patches for v3
Paul Cruz [Thu, 20 Jul 2017 17:53:51 +0000 (10:53 -0700)]
changed how completion is actually sampled
Yann Collet [Thu, 20 Jul 2017 08:13:14 +0000 (01:13 -0700)]
pool.c : blindfix for Visual warnings
Stella Lau [Thu, 20 Jul 2017 00:24:09 +0000 (17:24 -0700)]
Fix off-by-one in size calculations
Stella Lau [Wed, 19 Jul 2017 23:56:28 +0000 (16:56 -0700)]
Minor refactoring
Paul Cruz [Wed, 19 Jul 2017 23:36:33 +0000 (16:36 -0700)]
make adaptCompressionLevel oscillate less
Yann Collet [Wed, 19 Jul 2017 23:01:16 +0000 (16:01 -0700)]
added --memtest=# command to fuzzer
to jump directly to relevant test section
Paul Cruz [Wed, 19 Jul 2017 23:00:54 +0000 (16:00 -0700)]
call ZSTD_compressBegin() once
Paul Cruz [Wed, 19 Jul 2017 21:54:15 +0000 (14:54 -0700)]
fixing error when file size is multiple of job size (in which case, the srcSize of the last job is 0)
Stella Lau [Wed, 19 Jul 2017 21:14:26 +0000 (14:14 -0700)]
Experiment with integrating ZSTD_count with findBestMatch
Yann Collet [Wed, 19 Jul 2017 20:33:21 +0000 (13:33 -0700)]
blind fix for Windows Multithreading module
adds a fake 0 return value for mutex/cond init
Paul Cruz [Wed, 19 Jul 2017 20:30:07 +0000 (13:30 -0700)]
added some debug statements, adjusted end condition
Paul Cruz [Wed, 19 Jul 2017 18:51:50 +0000 (11:51 -0700)]
removed previous version of completion for compression
Paul Cruz [Wed, 19 Jul 2017 18:47:17 +0000 (11:47 -0700)]
set up new calculations compression completion progress
Paul Cruz [Wed, 19 Jul 2017 18:23:40 +0000 (11:23 -0700)]
split compression into smaller blocks
Paul Cruz [Wed, 19 Jul 2017 17:23:46 +0000 (10:23 -0700)]
moved compression adapt to avoid warning
Paul Cruz [Wed, 19 Jul 2017 17:14:00 +0000 (10:14 -0700)]
change compression level only right before actually performing compression. When waiting, only update waiting statistics.
Paul Cruz [Wed, 19 Jul 2017 17:10:47 +0000 (10:10 -0700)]
added mechanism for measuring how much of a job has been created
Paul Cruz [Wed, 19 Jul 2017 16:59:17 +0000 (09:59 -0700)]
split up read process into smaller chunks
Paul Cruz [Wed, 19 Jul 2017 16:43:17 +0000 (09:43 -0700)]
added additional print for help menu
Yann Collet [Wed, 19 Jul 2017 08:05:40 +0000 (01:05 -0700)]
check pthread_*_init() success condition
Stella Lau [Wed, 19 Jul 2017 01:35:25 +0000 (18:35 -0700)]
Avoid recounting match lengths with ZSTD_count
Stella Lau [Wed, 19 Jul 2017 01:05:10 +0000 (18:05 -0700)]
Switch to using ZSTD_count instead of function pointer
Paul Cruz [Wed, 19 Jul 2017 00:32:36 +0000 (17:32 -0700)]
changed createCCtx() to split into initialization and creation
Paul Cruz [Tue, 18 Jul 2017 22:55:58 +0000 (15:55 -0700)]
added mutex for stats struct
Yann Collet [Tue, 18 Jul 2017 22:40:59 +0000 (15:40 -0700)]
Merge pull request #770 from terrelln/test-mode
[zstdcli] Fix -t in streaming mode
Paul Cruz [Tue, 18 Jul 2017 22:23:11 +0000 (15:23 -0700)]
added progress check for filewriting, put important shared data behind mutex when being read from/written to
Yann Collet [Tue, 18 Jul 2017 21:58:26 +0000 (14:58 -0700)]
Merge pull request #769 from terrelln/real-block-split
[libzstd] Fix bug in Huffman encoding
Nick Terrell [Tue, 18 Jul 2017 21:45:49 +0000 (14:45 -0700)]
[zstdcli] Fix -t in streaming mode
Stella Lau [Tue, 18 Jul 2017 21:25:39 +0000 (14:25 -0700)]
Make the meaning of LDM_MEMORY_USAGE consistent across tables
Paul Cruz [Tue, 18 Jul 2017 20:31:02 +0000 (13:31 -0700)]
setting up basic readme
Paul Cruz [Tue, 18 Jul 2017 20:30:29 +0000 (13:30 -0700)]
rename completion variable, split up fwrite operations in order to track progress
Nick Terrell [Tue, 18 Jul 2017 18:21:19 +0000 (11:21 -0700)]
[libzstd] Fix bug in Huffman encoding
Summary:
Huffman encoding with a bad dictionary can encode worse than the
HUF_BLOCKBOUND(srcSize), since we don't filter out incompressible
input, and even if we did, the dictionaries Huffman table could be
ill suited to compressing actual data.
The fast optimization doesn't seem to improve compression speed,
even when I hard coded fast = 1, the speed didn't improve over hard coding
it to 0.
Benchmarks:
$ ./zstd.dev -b1e5
Benchmarking levels from 1 to 5
1#Synthetic 50% :
10000000 ->
3139163 (3.186), 524.8 MB/s ,1890.0 MB/s
2#Synthetic 50% :
10000000 ->
3115138 (3.210), 372.6 MB/s ,1830.2 MB/s
3#Synthetic 50% :
10000000 ->
3222672 (3.103), 223.3 MB/s ,1400.2 MB/s
4#Synthetic 50% :
10000000 ->
3276678 (3.052), 198.0 MB/s ,1280.1 MB/s
5#Synthetic 50% :
10000000 ->
3271570 (3.057), 107.8 MB/s ,1200.0 MB/s
$ ./zstd -b1e5
Benchmarking levels from 1 to 5
1#Synthetic 50% :
10000000 ->
3139163 (3.186), 524.8 MB/s ,1870.2 MB/s
2#Synthetic 50% :
10000000 ->
3115138 (3.210), 370.0 MB/s ,1810.3 MB/s
3#Synthetic 50% :
10000000 ->
3222672 (3.103), 223.3 MB/s ,1380.1 MB/s
4#Synthetic 50% :
10000000 ->
3276678 (3.052), 196.1 MB/s ,1270.0 MB/s
5#Synthetic 50% :
10000000 ->
3271570 (3.057), 106.8 MB/s ,1180.1 MB/s
$ ./zstd.dev -b1e5 ../silesia.tar
Benchmarking levels from 1 to 5
1#silesia.tar :
211988480 ->
73651685 (2.878), 429.7 MB/s ,1096.5 MB/s
2#silesia.tar :
211988480 ->
70158785 (3.022), 321.2 MB/s ,1029.1 MB/s
3#silesia.tar :
211988480 ->
66993813 (3.164), 243.7 MB/s , 981.4 MB/s
4#silesia.tar :
211988480 ->
66306481 (3.197), 226.7 MB/s , 972.4 MB/s
5#silesia.tar :
211988480 ->
64757852 (3.274), 150.3 MB/s , 963.6 MB/s
$ ./zstd -b1e5 ../silesia.tar
Benchmarking levels from 1 to 5
1#silesia.tar :
211988480 ->
73651685 (2.878), 429.7 MB/s ,1087.1 MB/s
2#silesia.tar :
211988480 ->
70158785 (3.022), 318.8 MB/s ,1029.1 MB/s
3#silesia.tar :
211988480 ->
66993813 (3.164), 246.5 MB/s , 981.4 MB/s
4#silesia.tar :
211988480 ->
66306481 (3.197), 229.2 MB/s , 972.4 MB/s
5#silesia.tar :
211988480 ->
64757852 (3.274), 149.3 MB/s , 963.6 MB/s
Test Plan:
I added a test case to the fuzzer which crashed with ASAN before the patch
and succeeded after.
Paul Cruz [Tue, 18 Jul 2017 19:58:50 +0000 (12:58 -0700)]
changed test cases to use -s setting on the diffs
Yann Collet [Tue, 18 Jul 2017 15:26:24 +0000 (08:26 -0700)]
Merge pull request #766 from terrelln/real-block-split
[libzstd] Pull optimal parser state out of seqStore_t
Yann Collet [Tue, 18 Jul 2017 02:25:55 +0000 (19:25 -0700)]
Merge pull request #765 from terrelln/real-block-split
[libzstd] Remove ZSTD_CCtx* argument of ZSTD_compressSequences()
Stella Lau [Tue, 18 Jul 2017 01:13:09 +0000 (18:13 -0700)]
Experiment with using a lag when hashing