Alexander Neumann
be205563be
Merge pull request #1575 from ifedorenko/1567_optimize-repository-ListPack
...
Optimize Repository.ListPack()
2018-01-24 20:01:15 +01:00
Alexander Neumann
fc6c341b26
Merge pull request #1574 from ifedorenko/1567_optimize-pack-readHeader
...
Optimize pack readHeader() implementation
2018-01-24 19:54:14 +01:00
Alexander Neumann
f86c141b83
Merge pull request #1577 from EdwardBetts/patch-1
...
Correct a spelling mistake.
2018-01-24 19:44:49 +01:00
Edward Betts
b5c23695c9
Correct a spelling mistake.
2018-01-24 12:09:41 +00:00
Igor Fedorenko
0084e42cb6
Optimize Repository.ListPack()
...
Use pack file size returned by Backend.List() to avoid extra per-pack
Backend.Stat() requests
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
2018-01-23 22:39:51 -05:00
Igor Fedorenko
953f3d55ee
Optimize pack readHeader() implementation
...
Load pack header length and 15 header entries with single backend
request. This eliminates separate header Load() request for most pack
files and significantly improves index.New() performance.
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
2018-01-23 22:02:25 -05:00
Alexander Neumann
7e6bfdae79
backend/rest: Implement REST API v2
2018-01-23 23:15:26 +01:00
Alexander Neumann
59782e347c
repository: Fix repack test
...
This reduces the chance of duplicate blobs, otherwise the tests fail
(make the contents of a blob depend on a pseudo-random number instead of
the size, sizes may be duplicate).
2018-01-23 23:14:05 +01:00
Alexander Neumann
e835abeceb
backend/test: Reliably trigger timeout error
2018-01-23 23:14:05 +01:00
Alexander Neumann
8e812b7ac0
errors: Make Cause() unwrap *url.Error
2018-01-23 23:14:05 +01:00
Alexander Neumann
685ce719ad
Add comments for List()
2018-01-23 23:14:05 +01:00
Alexander Neumann
b0c6e53241
Fix calls to repo/backend.List() everywhere
2018-01-21 21:15:09 +01:00
Alexander Neumann
e9ea268847
Change List() implementation for all backends
2018-01-21 21:15:09 +01:00
Alexander Neumann
c4e9d5d11e
backend: Add tests for new List() function
2018-01-21 18:35:37 +01:00
Alexander Neumann
52230b8f07
backend: Rework List()
...
For a discussion see #1567
2018-01-21 18:35:37 +01:00
Alexander Neumann
2130897ce0
rest: Add test for external server
2018-01-20 10:25:47 +01:00
Alexander Neumann
67da240068
rest: Refactor backend tests
2018-01-20 10:25:37 +01:00
Alexander Neumann
1046eabf95
rest: Remove unneeded tempdir
2018-01-20 10:13:04 +01:00
Alexander Neumann
200415e0a1
Merge pull request #1564 from restic/sftp-password-prompt
...
sftp: Prompt for password, don't terminate on SIGINT
2018-01-20 09:48:17 +01:00
Alexander Neumann
bcb6881ffb
Merge pull request #1548 from ifedorenko/checker-backend-Test
...
checker: Optimize checker.Packs()
2018-01-19 13:05:35 +01:00
Igor Fedorenko
231076fa4a
checker: Optimize checker.Packs()
...
Use result of single repository.List() to find both missing and
orphaned data packs. For 500GB repository this eliminates ~100K
repository.Test() calls and improves check time by >30M in my
environment (~45min before this change and ~7min after).
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
2018-01-18 20:50:39 -05:00
Alexander Neumann
0bdb131521
Remove SuspendSignalHandler
2018-01-17 23:14:47 +01:00
Alexander Neumann
c31a5e7e5c
Add argument to Skipf()
2018-01-17 23:14:37 +01:00
Alexander Neumann
05958caf6e
sftp: Prompt for password, don't terminate on SIGINT
...
This is a follow-up on fb9729fdb9
, which
runs the `ssh` in its own process group and selects that process group
as the foreground group. After the sftp connection is established,
restic switches back to the previous foreground process group.
This allows `ssh` to prompt for the password, but it won't receive
the interrupt signal (SIGINT, ^C) later on, because it is not in the
foreground process group any more, allowing a clean tear down.
2018-01-17 23:02:47 +01:00
Alexander Neumann
97565d68a2
fuse/mount: Add option for snapshot template
2018-01-15 14:47:17 +01:00
Alexander Neumann
f49f5c5903
fuse: Don't return an error for EOF
2018-01-13 10:14:10 +01:00
Alexander Neumann
d89f2e5226
fuse: Remove debug log message
2018-01-13 10:10:07 +01:00
Matthew Dawson
539599d1f1
repository/index: Optimize index.Has()
...
When backing up several million files (>14M tested here) with few changes,
a large amount of time is spent failing to find an id in an index and creating
an error to signify this. Since this is checked using the Has method,
which doesn't use this error, this time creating the error is wasted.
Instead, directly check if the given id and type are present in the index.
This also avoids reporting all the packs containing this blob, further
reducing cpu usage.
2018-01-08 21:46:17 +01:00
Alexander Neumann
d77a326bb0
Add benchmark for Index.Has()
2018-01-08 21:10:30 +01:00
Alexander Neumann
b8620429e2
restorer: Set directory mode as last step
...
Closes #1512
2018-01-07 15:13:24 +01:00
Alexander Neumann
aab414b368
Add test case for #1512
2018-01-07 14:50:47 +01:00
Alexander Neumann
5f43e17918
Merge pull request #1535 from ifedorenko/check-retry
...
fixed restic-check does not retry backend.Test failures
2018-01-07 09:43:49 +01:00
Igor Fedorenko
8c550ca011
fixed restic-check does not retry backend.Test failures
...
added missing RetryBackend.Test implementation
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
2018-01-06 23:22:35 -05:00
Alexander Neumann
032621289b
errors: Add "Fatal" prefix for Fatalf()
2018-01-06 23:27:47 +01:00
Alexander Neumann
b45fc89512
local/sftp: Create repo dirs on demand in Save()
2018-01-05 17:51:09 +01:00
Alexander Neumann
aabc0ccaa7
fs: Make HasPathPrefix work with relative paths
2018-01-05 17:38:52 +01:00
Alexander Neumann
18ecd9df30
Improve limiting HTTP based backends
2017-12-29 12:43:49 +01:00
Alexander Neumann
3f7d85360a
fuse: Only reload list of snapshots once per minute
2017-12-28 13:18:27 +01:00
Alexander Neumann
6c2b2a58ad
backend: Retry deletes
2017-12-22 22:41:28 +01:00
Alexander Neumann
bc04ce8e6b
Merge pull request #1482 from restic/fix-1478
...
backend: Only return top-level files for most dirs
2017-12-20 18:06:47 +01:00
Alexander Neumann
7d8765a937
backend: Only return top-level files for most dirs
...
Fixes #1478
2017-12-14 19:14:16 +01:00
Alexander Neumann
81a04656c5
fuse: Cleanup node name
2017-12-13 20:21:18 +01:00
Harshavardhana
27ccea6371
Since upgrade to minio-go 4.0 remove workaround
...
We added previously a code to fix the issue of chaining
credentials, we do not need this anymore since the
upstream minio-go already has this relevant change.
2017-12-09 02:01:42 -08:00
Alexander Neumann
8b3b7bc5ef
s3: Use context
2017-12-08 22:04:55 +01:00
Alexander Neumann
934ae1b559
Update to minio-go 4
2017-12-08 21:52:50 +01:00
Alexander Neumann
3a5e040b7e
Merge pull request #1439 from armhold/propagate-context
...
replace ad-hoc context.TODO() with gopts.ctx
2017-12-08 20:27:36 +01:00
George Armhold
1695c8ed55
use global context for check, debug, dump, find, forget, init, key,
...
list, mount, tag, unlock commands
gh-1434
2017-12-06 07:02:55 -05:00
George Armhold
0dc31c03e1
remove check for context.Canceled
...
gh-1434
2017-12-06 05:38:29 -05:00
Alexander Neumann
82ded35706
node: Correctly compare times
2017-12-03 18:33:35 +01:00
Alexander Neumann
88607fc625
Correctly format all node types
2017-12-03 17:38:55 +01:00