lp:~stragerneds/duplicity/duplicity-0.7-perf

Created by Matthew Glazar and last modified
Get this branch:
bzr branch lp:~stragerneds/duplicity/duplicity-0.7-perf
Only Matthew Glazar can upload to this branch. If you are Matthew Glazar please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Matthew Glazar
Project:
Duplicity
Status:
Development

Recent revisions

1377. By Matthew Glazar

Optimize loading backup chains; reduce file_naming.parse calls

For each filename in filename_list,
CollectionsStatus.get_backup_chains calls file_naming.parse
(through BackupSet.add_filename) between 0 and len(sets)*2
times. In the worst case, this leads to a *ton* of redundant
calls to file_naming.parse.

For example, when running 'duplicity collection-status' on
one of my backup directories:

* filename_list contains 7545 files
* get_backup_chains creates 2515 BackupSet-s
* get_backup_chains calls file_naming.parse 12650450 times!

This command took 9 minutes and 32 seconds. Similar
commands, like no-op incremental backups, also take a long
time. (The directory being backed up contains only 9 MiB
across 30 files.)

Avoid many redundant calls to file_naming.parse by hoisting
the call outside the loop over BackupSet-s. This
optimization makes 'duplicity collection-status' *20 times
faster* for me (572 seconds -> 29 seconds).

Aside from improving performance, this commit should not
change behavior.

1376. By Kenneth Loafman

* Merged in lp:~aaron-whitehouse/duplicity/07-snap
  - Add snapcraft packaging instructions for 0.7 series

1375. By Kenneth Loafman

* Merged in lp:~mgorse/duplicity/0.7-series
  - Fix bug 1828869: refresh CollectionsStatus after sync

1374. By Kenneth Loafman

New in v0.7.19 (2019/04/29)
-----------------------------
* Fixed bug #1798206 and bug #1798504
  - Made paramiko a global with import during __init__ so it would
    not be loaded unless needed.
* Merged in lp:~mterry/duplicity/pydrive-root-0.7
  - Just a tiny fix to clean up the temporary file we create to find the root ID.
    It's a little surprising for the user if they wind up with this file called
    "i_am_in_root" that they don't know where it came from. Almost sounds like
    they were hacked.
* Merged in lp:~yajo/duplicity/duplicity
  - Support partial metadata sync.
  - Fixes bug #1823858 by letting the user to choose partial syncing. Only the metadata for the target chain
    will be downloaded. If older (or newer) chains are encrypted with a different passphrase, the user will
    be able to restore to a given time by supplying only the passphrase for the chain selected by
    the `--restore-time` option when using this new option.
  - A side effect is that using this flag reduces dramatically the sync time when moving files from one to
    another location, in cases where big amounts of chains are found.
* Prep for release.

1373. By Kenneth Loafman

* Merged in lp:~yajo/duplicity/duplicity
  - Support partial metadata sync.
  - Fixes bug #1823858 by letting the user to choose partial syncing. Only the metadata for the target chain
    will be downloaded. If older (or newer) chains are encrypted with a different passphrase, the user will
    be able to restore to a given time by supplying only the passphrase for the chain selected by
    the `--restore-time` option when using this new option.
  - A side effect is that using this flag reduces dramatically the sync time when moving files from one to
    another location, in cases where big amounts of chains are found.

1372. By Kenneth Loafman

* Merged in lp:~mterry/duplicity/pydrive-root-0.7
  - Just a tiny fix to clean up the temporary file we create to find the root ID.
    It's a little surprising for the user if they wind up with this file called
    "i_am_in_root" that they don't know where it came from. Almost sounds like
    they were hacked.

1371. By Kenneth Loafman

Bug #1813214 was marked fixed in 0.7.13. There were still a couple of copy.com references remaining in the docs and web. Got those nuked, finally.

1370. By Kenneth Loafman

Fix some punctuation.

1369. By Kenneth Loafman

Whoops, missed 'global paramiko' in __init__.

1368. By Kenneth Loafman

* Fixed bug #1798206 and bug #1798504
  * Made paramiko a global with import during __init__ so it would
    not be loaded unless needed.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:~duplicity-team/duplicity/0.8-series
This branch contains Public information 
Everyone can see this information.

Subscribers