Alexander Neumann
5cdcc99eba
Use array instead of hash for backend.ID
...
Since backend.ID is always a slice of constant length, use an array
instead of a slice. Mostly, arrays behave as slices, except that an
array cannot be nil, so use `*backend.ID` insteaf of `backend.ID` in
places where the absence of an ID is possible (e.g. for the Subtree of a
Node, which may not present when the node is a file node).
This change allows to directly use backend.ID as the the key for a map,
so that arbitrary data structures (e.g. a Set implemented as a
map[backend.ID]struct{}) can easily be formed.
2015-07-25 18:01:57 +02:00
Alexander Neumann
6e38a8a033
Move FindSnapshot, make Repository.List() return IDs
2015-05-17 20:58:22 +02:00
Alexander Neumann
1f94ac724f
backend: rename LimitReader to LimitReadCloser
2015-05-02 16:13:56 +02:00
Alexander Neumann
98dc811536
Add nil-receiver awareness to all Reader/Writer
2015-05-01 17:32:42 +02:00
Alexander Neumann
60a0fe8349
Major restructure, bundle blobs
...
This commit also breaks the repository format.
2015-04-29 23:27:32 +02:00
Alexander Neumann
24b14e21cc
Remove pools for nodes and IDs
...
This removes the allocation pools for nodes and IDs. I feel they aren't
really needed. Benchmarks:
benchmark old ns/op new ns/op delta
BenchmarkChunkEncrypt 197890867 198616293 +0.37%
BenchmarkChunkEncryptParallel 196127004 198819818 +1.37%
BenchmarkArchiveDirectory 1098848419 1087237723 -1.06%
BenchmarkPreload 30464455 29910239 -1.82%
BenchmarkLoadTree 3265092 3088543 -5.41%
BenchmarkEncryptWriter 37213511 37134683 -0.21%
BenchmarkEncrypt 36037879 36166546 +0.36%
BenchmarkDecryptReader 38165659 38556734 +1.02%
BenchmarkEncryptDecryptReader 77027044 77194987 +0.22%
BenchmarkDecrypt 36017602 35937888 -0.22%
BenchmarkSaveJSON 47906 50270 +4.93%
BenchmarkSaveFrom 49775973 50520969 +1.50%
BenchmarkLoadJSONID 105290245 107281849 +1.89%
BenchmarkChunkerWithSHA256 151501430 148264078 -2.14%
BenchmarkChunkerWithMD5 93606346 94036392 +0.46%
BenchmarkChunker 74285431 75933882 +2.22%
BenchmarkPipelineWalker 387689 346467 -10.63%
benchmark old MB/s new MB/s speedup
BenchmarkChunkEncrypt 52.99 52.79 1.00x
BenchmarkChunkEncryptParallel 53.46 52.74 0.99x
BenchmarkEncryptWriter 225.42 225.90 1.00x
BenchmarkEncrypt 232.77 231.94 1.00x
BenchmarkDecryptReader 219.79 217.57 0.99x
BenchmarkEncryptDecryptReader 108.90 108.67 1.00x
BenchmarkDecrypt 232.90 233.42 1.00x
BenchmarkSaveFrom 84.26 83.02 0.99x
BenchmarkChunkerWithSHA256 69.21 70.72 1.02x
BenchmarkChunkerWithMD5 112.02 111.51 1.00x
BenchmarkChunker 141.15 138.09 0.98x
benchmark old allocs new allocs delta
BenchmarkChunkEncrypt 110 110 +0.00%
BenchmarkChunkEncryptParallel 100 100 +0.00%
BenchmarkArchiveDirectory 475591 476635 +0.22%
BenchmarkPreload 28059 24182 -13.82%
BenchmarkLoadTree 3124 2889 -7.52%
BenchmarkEncryptWriter 19 19 +0.00%
BenchmarkEncrypt 13 13 +0.00%
BenchmarkDecryptReader 16 15 -6.25%
BenchmarkEncryptDecryptReader 39 39 +0.00%
BenchmarkDecrypt 11 11 +0.00%
BenchmarkSaveJSON 74 74 +0.00%
BenchmarkSaveFrom 109 112 +2.75%
BenchmarkLoadJSONID 103630 97849 -5.58%
BenchmarkChunkerWithSHA256 13 13 +0.00%
BenchmarkChunkerWithMD5 12 12 +0.00%
BenchmarkChunker 6 6 +0.00%
BenchmarkPipelineWalker 212 165 -22.17%
benchmark old bytes new bytes delta
BenchmarkChunkEncrypt 64697 64697 +0.00%
BenchmarkChunkEncryptParallel 64681 64681 +0.00%
BenchmarkArchiveDirectory 193385504 193790864 +0.21%
BenchmarkPreload 4064701 3942000 -3.02%
BenchmarkLoadTree 344954 325396 -5.67%
BenchmarkEncryptWriter 12793 12793 +0.00%
BenchmarkEncrypt 1950 1950 +0.00%
BenchmarkDecryptReader 3120 2774 -11.09%
BenchmarkEncryptDecryptReader 1528036 1528036 +0.00%
BenchmarkDecrypt 1919 1919 +0.00%
BenchmarkSaveJSON 5524 5524 +0.00%
BenchmarkSaveFrom 31353 40804 +30.14%
BenchmarkLoadJSONID 12872020 16010968 +24.39%
BenchmarkChunkerWithSHA256 26821 26821 +0.00%
BenchmarkChunkerWithMD5 13554 13554 +0.00%
BenchmarkChunker 13458 13458 +0.00%
BenchmarkPipelineWalker 58584 55560 -5.16%
2015-03-28 16:51:37 +01:00
Alexander Neumann
223108c6ae
Remove unused vars and const
2015-03-28 15:28:08 +01:00
Alexander Neumann
5e69788eac
Refactor backends
2015-03-28 14:36:50 +01:00
Alexander Neumann
b6f25aa690
Remove Each(), add basic stats
2015-02-17 23:11:56 +01:00
Alexander Neumann
06ed5c12b8
Remove Compress() and Uncompress() from backend
2015-02-16 00:30:51 +01:00
Alexander Neumann
842dea173c
Generalize hash in backend
2015-02-11 19:25:43 +01:00
Alexander Neumann
cc147c002e
Introduce type Server
2014-12-21 17:37:29 +01:00
Alexander Neumann
661c1e9aa1
Restructure backend
2014-12-21 17:29:58 +01:00
Alexander Neumann
bb62218743
Add functions to compute unique prefix length
2014-11-24 22:09:22 +01:00
Alexander Neumann
2c5d07a571
List snapshots, accept snapshot id prefix
...
Example:
$ ./khepri snapshots
ID Date Source Directory
--------------------------------------------------------------------------------
fa31d65b 2014-11-24 19:45:11 kasimir /home/user/testdata
20bdc140 2014-11-24 20:00:47 kasimir /home/user/testdata
326cb59d 2014-11-24 20:01:40 kasimir /home/user/testdata
20ff988b 2014-11-24 20:35:35 kasimir /home/user
2014-11-24 21:12:32 +01:00
Alexander Neumann
f95788ed90
Limit memory usage, add several sync.Pool
2014-11-23 21:26:20 +01:00
Alexander Neumann
30ab03b7b7
Add decrypt, refactor
2014-10-03 21:44:55 +02:00