summaryrefslogtreecommitdiff
path: root/Assistant/Threads/TransferScanner.hs
Commit message (Collapse)AuthorAge
* cleanupGravatar Joey Hess2012-09-17
|
* hlintGravatar Joey Hess2012-09-13
|
* display errors when any named thread crashesGravatar Joey Hess2012-09-06
|
* avoid some confusing alertsGravatar Joey Hess2012-08-26
|
* add support for readonly remotesGravatar Joey Hess2012-08-26
| | | | | | | Currently only the web special remote is readonly, but it'd be possible to also have readonly drives, or other remotes. These are handled in the assistant by only downloading from them, and never trying to upload to them.
* scan multiple remotes in one passGravatar Joey Hess2012-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | The expensive transfer scan now scans a whole set of remotes in one pass. So at startup, or when network comes up, it will run only once. Note that this can result in transfers from/to higher cost remotes being queued before other transfers of other content from/to lower cost remotes. Before, low cost remotes were scanned first and all their transfers came first. When multiple transfers are queued for a key, the lower cost ones are still queued first. However, this could result in transfers from slow remotes running for a long time while transfers of other data from faster remotes waits. I expect to make the transfer queue smarter about ordering and/or make it allow multiple transfers at a time, which should eliminate this annoyance. (Also, it was already possible to get into that situation, for example if the network was up, lots of transfers from slow remotes might be queued, and then a disk is mounted and its faster transfers have to wait.) Also note that this means I don't need to improve the code in Assistant.Sync that currently checks if any of the reconnected remotes have diverged, and if so, queues scans of all of them. That had been very innefficient, but now doesn't matter.
* keep track of which remotes have been scanned in process stateGravatar Joey Hess2012-08-24
| | | | | Since it turned out to make sense to always scan all remotes on startup, there's no need to persist the info about which have been scanned.
* avoid crash when directory doesn't existGravatar Joey Hess2012-08-24
|
* run full transfer scan on all remotes at startupGravatar Joey Hess2012-08-24
| | | | Or when a remote first becomes available after startup.
* avoid requeueing a download from a remote that no longer has a keyGravatar Joey Hess2012-08-24
|
* don't rely on hasKeyCheap in the transfer scanGravatar Joey Hess2012-08-23
| | | | | | | The problem with using it here is that, if a removable drive is scanned and gets disconnected during the scan, testing for all the files will indicate it doesn't have them, and the scan is logged as completed successfully, without necessary transfers being queued.
* keep logs of failed transfers, and requeue them when doing a non-full scanGravatar Joey Hess2012-08-23
| | | | of a remote
* add transfer scanned flag filesGravatar Joey Hess2012-08-23
|
* make old activiy alerts stay visibleGravatar Joey Hess2012-07-30
| | | | | | They're updated to show whether the activity succeeded or failed. This adds several TODOs to the code to fix later.
* moved all alert messages into one fileGravatar Joey Hess2012-07-29
| | | | Makes it easier to edit for consistent voice etc.
* add some alertsGravatar Joey Hess2012-07-29
|
* send notifications when the TransferQueue is changedGravatar Joey Hess2012-07-28
| | | | | | The fun part was making it move things from TransferQueue to currentTransfers entirely atomically. Which will avoid inconsistent display if the WebApp renders the current status at just the wrong time. STM to the rescue!
* laziness fixGravatar Joey Hess2012-07-25
| | | | Now scanning runs fully interleaved with transferring.
* implement simple working copy based scanGravatar Joey Hess2012-07-25
| | | | Works.. could be more efficient.
* better transfer queue managementGravatar Joey Hess2012-07-25
| | | | | | | Allow transfers to be added with blocking until the queue is sufficiently small. Better control over which end of the queue to add a transfer to.
* avoid spawning new transfer thread until a slot becomes availableGravatar Joey Hess2012-07-25
|
* add TransferScanner threadGravatar Joey Hess2012-07-22
Efficiently finding transfers that need to be done to get two repos back in sync seems like an interesting problem.