Jarek Kowalski
f4424bd79c
parallelized 'block rewrite'
2018-06-23 12:30:59 -07:00
Jarek Kowalski
1defc18300
refactored command_snapshot_expire
2018-06-23 12:30:45 -07:00
Jarek Kowalski
2f1cf8129b
added skeleton of CLI actions for manipulating server sources
2018-06-18 18:02:36 -07:00
Jarek Kowalski
4faf3cd9d0
finalized CLI to manipulate policies
2018-06-16 12:17:58 -07:00
Jarek Kowalski
22b0766570
API server, work in progress
2018-06-10 20:59:49 -07:00
Jarek Kowalski
b105cca96c
added 'kopia server' which runs simple daemon with simple HTTP API server, which will be used to build a web UI
2018-06-10 17:24:42 -07:00
Jarek Kowalski
846a46b879
changed how caching is controlled in block manager by using context instead of options
2018-06-10 10:20:52 -07:00
Jarek Kowalski
6838d820c8
revamped object verification to be parallelized, added option to randomly verify a percentage of object contents
2018-06-09 22:15:36 -07:00
Jarek Kowalski
e5e5577cfd
fixed linter warnings
2018-06-09 14:06:43 -07:00
Jarek Kowalski
fc618b0c66
changed block.PhysicalBlockID to a string
2018-06-07 18:42:22 -07:00
Jarek Kowalski
6ee5c81e21
renamed 'pack block ID' to 'pack file' everywhere
2018-06-07 07:52:17 -07:00
Jarek Kowalski
f869996a1c
aligned 'ls' output
2018-06-06 21:38:32 -07:00
Jarek Kowalski
9ea74b2862
when reporting stats to GA do it asynchronously at start and do not block for more than 1s on exit
2018-06-06 21:38:08 -07:00
Jarek Kowalski
7738fa536f
revamped 'object verify' to support verifying one or more sources easily
2018-06-06 21:18:44 -07:00
Jarek Kowalski
ebd8b0a943
CLI improvements
2018-06-04 22:55:57 -07:00
Jarek Kowalski
416475a092
added RewriteBlock() support which can rewrite either deleted or non-deleted block to a new pack
...
Added 'block gc' and 'block rewrite' command-line subcommands.
2018-06-04 22:09:10 -07:00
Jarek Kowalski
02c5e90671
added new cli flags to 'storage list'
2018-06-02 10:46:59 -07:00
Jarek Kowalski
5ba913380e
added support for soft-delete that preserves original pack ID/offset/length.
...
removed legacy soft-delete support without this information
2018-05-30 21:22:07 -07:00
Jarek Kowalski
53db414ff7
Added simple analytics mechanism based on Google Analytics for tracking features usage and latency.
...
Controlled on command line via --analytics-consent (defaults to asking user)
2018-05-30 21:22:07 -07:00
Jarek Kowalski
80a3bdfd4a
fixed race condition when multiple kopia instances are downloading indexes in parallel
2018-05-20 10:45:13 -07:00
Jarek Kowalski
e36d02c59b
emit per-dir incomplete reason
...
store entire rootEntry on snapshot nmanifest
format 'snapshot list' consistently for both root and nested items
2018-05-19 22:00:14 -07:00
Jarek Kowalski
e6c8144b93
output pack block id in 'blockindex show active'
2018-05-17 23:26:43 -07:00
Jarek Kowalski
96d27c2293
improved block list and index format
2018-05-17 22:41:54 -07:00
Jarek Kowalski
ec779b14c7
refactored and cleaned up policy management, added retention tags to snapshot list
2018-05-17 20:31:37 -07:00
Jarek Kowalski
c907580aaf
when running 'snapshot create --all' ignore individual source error failures
2018-05-15 20:54:45 -07:00
Jarek Kowalski
d6477377f9
changed how index compaction works:
...
instead of having time-based naming, block manager will perform occasional compaction at startup time and delete unwanted blocks
The protocol is safe from concurrency standpoint and provides eventual consistency.
We only delete blocks after creating compacted blocks.
We retry loading index until (any) consistent index is fetched (possibly from cache) and all underlying blocks are also available, not necessarily the latest ones.
TODO - we need to periodically snapshot block index contents, so that if we have a bug somewhere in compaction code, we have a way of restoring working indexes.
2018-05-15 20:10:50 -07:00
Jarek Kowalski
7e6154f6f3
fixed progress bar
2018-05-13 21:55:00 -07:00
Jarek Kowalski
12c28e537d
simplified ObjectID code and changed it to a string
2018-05-09 22:22:37 -07:00
Jarek Kowalski
62ce401cd6
exposed block.Manager.ListBlocks() which only returns block IDs instead of full info
2018-05-05 16:16:48 -07:00
Jarek Kowalski
3a02ef24e0
retire block.ContentID and replace with string
2018-05-05 16:16:48 -07:00
Jarek Kowalski
1342fd910a
switched to using custom block index designed for efficient lookup without having to parse it
...
the block index stores tightly packed sorted block IDs
Typically a single entry 128-bit content ID uses 37 bytes of index storage.
2018-05-05 16:14:31 -07:00
Jarek Kowalski
250ceff6fd
removed support for pack index V1
2018-04-29 14:10:20 -07:00
Jarek Kowalski
5ede755524
added pack index v2
2018-04-29 13:44:12 -07:00
Jarek Kowalski
4428743a5b
added --raw option to 'blockindex show'
2018-04-29 13:44:12 -07:00
Jarek Kowalski
726d33e0d5
added levelDB-based persistent block index
2018-04-29 13:44:12 -07:00
Jarek Kowalski
c4c74586c6
refactored block manager so that loaded block index is separate from pending block index
...
expanded block.Info to include additional details, removed packBlockInfo
removed repackaging support for now, since it's greatly complicating the implementation
2018-04-29 13:44:00 -07:00
Jarek Kowalski
f94fcea14b
moved block cache to a subdirectory
2018-04-23 19:56:01 -07:00
Jarek Kowalski
924e0a4594
renamed index proto types to IndexV1
2018-04-08 18:45:22 -07:00
Jarek Kowalski
301f1d049a
added strongly-typed block.ContentID and renamed StorageBlock to ContentBlockID
2018-04-08 16:34:38 -07:00
Jarek Kowalski
4566213f5d
switched formatter to pass IV explicitly
...
extracted packIndex interface and implemented protoPackIndex to wrap all index data manipulation
2018-04-08 12:20:32 -07:00
Jarek Kowalski
d8201229d8
plumbed through ctx in storage.Storage APIs and all uses
2018-04-03 17:39:54 -07:00
Jarek Kowalski
a608c2f443
tweaked snapshot list
2018-03-24 12:22:21 -07:00
Jarek Kowalski
1c4e0e1e47
removed legacy oid format
2018-03-19 19:31:03 -07:00
Jarek Kowalski
2e61cc5688
code simplification, enabled gocyclo linter
2018-03-19 14:08:19 -07:00
Jarek Kowalski
fa5eae501a
removed cleanup for now
2018-03-19 12:26:28 -07:00
Jarek Kowalski
453bab3560
fixed some lint errors, mostly dead code and missing error checks
2018-03-19 12:26:28 -07:00
Jarek Kowalski
4657f16cc8
CLI improvement for automatic logging and log rotation
2018-03-16 22:21:57 -07:00
Jarek Kowalski
47b1e09ba9
added default CLI commands
2018-03-15 09:39:39 -07:00
Jarek Kowalski
54aeea8ee6
fixed block list for inline blocks
2018-03-14 19:27:52 -07:00
Jarek Kowalski
70ed5647e4
added parallel uploading support
2018-03-14 18:22:50 -07:00