Commit Graph

698 Commits

Author SHA1 Message Date
Alexander Neumann 56bca76b74 Fix benchmark for EncryptWriter 2015-03-14 22:42:30 +01:00
Alexander Neumann 12c8522b33 Fix file mode for data blobs 2015-03-14 20:19:52 +01:00
Alexander Neumann e896a33c43 Remove a few Go versions 2015-03-14 20:02:17 +01:00
Alexander Neumann 662e07d17a Refactor crypto layer, switch HMAC for Poyl1305-AES
HMAC-SHA256 calls SHA256() twice which is very expensive. Therefore,
this commit uses Poly1305-AES instead of HMAC-SHA256.

benchcmp:

     benchmark                         old ns/op      new ns/op      delta
     BenchmarkChunkEncrypt             261033772      195114818      -25.25%
     BenchmarkChunkEncryptParallel     260973195      195787368      -24.98%
     BenchmarkArchiveDirectory         1050500651     1002615884     -4.56%
     BenchmarkPreload                  23544286       24994508       +6.16%
     BenchmarkLoadTree                 350065         427665         +22.17%
     BenchmarkEncryptWriter            87789753       31069126       -64.61%
     BenchmarkEncrypt                  88283197       38259043       -56.66%
     BenchmarkDecryptReader            90478843       40714818       -55.00%
     BenchmarkEncryptDecryptReader     179917626      81231730       -54.85%
     BenchmarkDecrypt                  87871591       37784207       -57.00%
     BenchmarkSaveJSON                 52481          56861          +8.35%
     BenchmarkSaveFrom                 75404085       51108596       -32.22%
     BenchmarkLoadJSONID               90545437       82696805       -8.67%

     benchmark                         old MB/s     new MB/s     speedup
     BenchmarkChunkEncrypt             40.17        53.74        1.34x
     BenchmarkChunkEncryptParallel     40.18        53.56        1.33x
     BenchmarkEncryptWriter            95.55        270.00       2.83x
     BenchmarkEncrypt                  95.02        219.26       2.31x
     BenchmarkDecryptReader            92.71        206.03       2.22x
     BenchmarkEncryptDecryptReader     46.62        103.27       2.22x
     BenchmarkDecrypt                  95.46        222.01       2.33x
     BenchmarkSaveFrom                 55.62        82.07        1.48x

     benchmark                         old allocs     new allocs     delta
     BenchmarkChunkEncrypt             112            110            -1.79%
     BenchmarkChunkEncryptParallel     103            100            -2.91%
     BenchmarkArchiveDirectory         383704         392083         +2.18%
     BenchmarkPreload                  21765          21874          +0.50%
     BenchmarkLoadTree                 341            436            +27.86%
     BenchmarkEncryptWriter            20             17             -15.00%
     BenchmarkEncrypt                  14             13             -7.14%
     BenchmarkDecryptReader            18             15             -16.67%
     BenchmarkEncryptDecryptReader     46             39             -15.22%
     BenchmarkDecrypt                  16             12             -25.00%
     BenchmarkSaveJSON                 81             86             +6.17%
     BenchmarkSaveFrom                 117            121            +3.42%
     BenchmarkLoadJSONID               80525          80264          -0.32%

     benchmark                         old bytes     new bytes     delta
     BenchmarkChunkEncrypt             118956        64697         -45.61%
     BenchmarkChunkEncryptParallel     118972        64681         -45.63%
     BenchmarkArchiveDirectory         160236600     177498232     +10.77%
     BenchmarkPreload                  2772488       3302992       +19.13%
     BenchmarkLoadTree                 49102         46484         -5.33%
     BenchmarkEncryptWriter            28927         8388146       +28897.64%
     BenchmarkEncrypt                  2473          1950          -21.15%
     BenchmarkDecryptReader            527827        2774          -99.47%
     BenchmarkEncryptDecryptReader     4100875       1528036       -62.74%
     BenchmarkDecrypt                  2509          2154          -14.15%
     BenchmarkSaveJSON                 4971          5892          +18.53%
     BenchmarkSaveFrom                 40117         31742         -20.88%
     BenchmarkLoadJSONID               9444217       9442106       -0.02%

This closes #102.
2015-03-14 20:00:41 +01:00
Alexander Neumann 3c92c7e689 Recreate blob cache if missing (closes #104) 2015-03-14 18:15:47 +01:00
Alexander Neumann 05f3e98ed9 Try different spelling of 'go' 2015-03-14 15:38:59 +01:00
Alexander Neumann 3bbd66f43a Move section, remove 'tip' 2015-03-14 15:37:12 +01:00
Alexander Neumann f6977f1a6a Add 'release' to the list of Go versions 2015-03-14 15:34:30 +01:00
Alexander Neumann 3f816f95c1 Include more Go versions 2015-03-14 15:07:29 +01:00
Alexander Neumann 23ac4f84dd Set file-mode in repository read-only (Closes #48) 2015-03-14 14:30:26 +01:00
Alexander Neumann 248878022c Add Travis IRC notifications 2015-03-14 13:24:45 +01:00
Alexander Neumann 1e4555aa5f Exchange build-status icon 2015-03-14 13:23:44 +01:00
Alexander Neumann 6618afe5c2 Change CI-Service: Use travis instead of wercker 2015-03-14 13:19:52 +01:00
Alexander Neumann b17840c6ee Refactor cache and 'cache' command 2015-03-14 12:57:29 +01:00
Alexander Neumann e1fc17aeb1 Implement per-repository cache 2015-03-14 12:16:28 +01:00
Alexander Neumann f69a39cff5 Add ID to repository
This allows identifying a repository regardless if it's accessed over
SFTP or locally. Introduced for having a per-repository cache.
2015-03-14 12:06:27 +01:00
Alexander Neumann 8156d4481d Add hint to IRC channel 2015-03-13 21:46:52 +01:00
Alexander Neumann 91578fb2a3 Fix counting for tests for Preload 2015-03-10 15:58:23 +01:00
Alexander Neumann 6d5f1c0197 Add test for incremental backup 2015-03-10 14:17:54 +01:00
Alexander Neumann 7b54c21726 Store ID in Snapshot 2015-03-10 14:17:52 +01:00
Alexander Neumann 2166367039 Fix comparison for new files with '.' 2015-03-10 14:17:50 +01:00
Alexander Neumann 14298fe232 Cache blobs for each snapshot 2015-03-09 23:50:32 +01:00
Alexander Neumann b2cce7f051 Remove extra argument 2015-03-08 21:21:31 +01:00
Alexander Neumann ab8b97c4ba Remove code duplication
The top-level tree is now handled by the DirWorkers
2015-03-08 21:06:51 +01:00
Alexander Neumann 6007452fd2 Fix darwin support 2015-03-08 14:32:49 +01:00
Alexander Neumann b3cdd3ead9 Remove unused code 2015-03-08 14:22:35 +01:00
Alexander Neumann ba892e1ec2 Refactor backup pipeline 2015-03-08 14:16:01 +01:00
Alexander Neumann 1516cb5996 Bump Go version to 1.3 2015-03-07 22:31:44 +01:00
Alexander Neumann 798ac97a52 Re-enable dedup, add test (closes #95) 2015-03-07 12:05:33 +01:00
Alexander Neumann 03bdbb064f Allow cancelling walker 2015-03-02 19:58:11 +01:00
Alexander Neumann f167366be5 Add walk for trees, restructure 2015-03-02 19:58:06 +01:00
Alexander Neumann c8be54564f Add local cache 2015-03-02 10:04:01 +01:00
Alexander Neumann c056382c9c Remove zlib compression 2015-03-02 10:02:55 +01:00
Alexander Neumann b4cb75693e Do not close file if it could not be opened 2015-02-22 00:21:56 +01:00
Alexander Neumann ef498a987b Allow configuring temp dir for tests 2015-02-21 16:53:14 +01:00
Alexander Neumann a59b0ec1f6 Add progress report for loading blobs 2015-02-21 15:32:48 +01:00
Alexander Neumann 58cded6b75 Refactor progress reporting 2015-02-21 14:25:06 +01:00
Alexander Neumann 97b963ef1d Report files and dirs 2015-02-21 14:05:02 +01:00
Alexander Neumann 2f3aa344af Make decryptReader fulfill flate.Reader
benchmark               old ns/op     new ns/op     delta
    BenchmarkLoadJSONID     50232171      48596972      -3.26%

    benchmark               old allocs     new allocs     delta
    BenchmarkLoadJSONID     43643          42884          -1.74%

    benchmark               old bytes     new bytes     delta
    BenchmarkLoadJSONID     5773048       3785517       -34.43%
2015-02-18 23:30:59 +01:00
Alexander Neumann a0fea201d9 Reenable Preloading 2015-02-18 23:10:59 +01:00
Alexander Neumann f214dce87c Add tests for Archiver.Preload() and a few more 2015-02-18 22:48:59 +01:00
Alexander Neumann 3bb2aba141 Remove test files 2015-02-18 21:50:59 +01:00
Alexander Neumann 68141c738b Correct length of plaintext before decryption 2015-02-18 20:44:21 +01:00
Alexander Neumann 2462f93533 Disable Tests when benchdir is unset 2015-02-17 23:40:37 +01:00
Alexander Neumann f8e47181b0 Add more debug for preloading 2015-02-17 23:38:40 +01:00
Alexander Neumann 65aae5f8c1 Disable preloading for now 2015-02-17 23:38:15 +01:00
Alexander Neumann d3fe4a7f6d Close Reader after read 2015-02-17 23:37:45 +01:00
Alexander Neumann 215fb982c6 Do not run archiver tests by default 2015-02-17 23:23:12 +01:00
Alexander Neumann 677a5038c5 Increase concurrency for loading blobs 2015-02-17 23:15:08 +01:00
Alexander Neumann b6f25aa690 Remove Each(), add basic stats 2015-02-17 23:11:56 +01:00