diff options
author | 2012-06-26 22:31:32 -0400 | |
---|---|---|
committer | 2012-06-26 22:31:32 -0400 | |
commit | 3ede3a809725a1ce612730218aa52349f785b0de (patch) | |
tree | 0fe0c01fe1910e702da3a06c6d26a3187a2cb2e8 /doc | |
parent | 67c8ef7de25ad6f433db2fa5d5fc764dd515a5b2 (diff) | |
parent | 6aee7e5a8b581b342d0c34d25b57fdb60a3c0821 (diff) |
Merge branch 'master' into assistant
Diffstat (limited to 'doc')
-rw-r--r-- | doc/design/assistant/blog/day_17__push_queue_prune.mdwn | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_17__push_queue_prune.mdwn b/doc/design/assistant/blog/day_17__push_queue_prune.mdwn new file mode 100644 index 000000000..54ee75fb8 --- /dev/null +++ b/doc/design/assistant/blog/day_17__push_queue_prune.mdwn @@ -0,0 +1,19 @@ +Not much available time today, only a few hours. + +Main thing I did was fixed up the failed push tracking to use a better data +structure. No need for a queue of failed pushes, all it needs is a map of +remotes that have an outstanding failed push, and a timestamp. Now it +won't grow in memory use forever anymore. :) + +Finding the right thread mutex type for this turned out to be a bit of a +challenge. I ended up with a STM TMVar, which is left empty when there are +no pushes to retry, so the thread using it blocks until there are some. And, +it can be updated transactionally, without races. + +I also fixed a bug outside the git-annex assistant code. It was possible to +crash git-annex if a local git repository was configured as a remote, and +the repository was not available on startup. git-annex now ignores such +remotes. This does impact the assistant, since it is a long running process +and git repositories will come and go. Now it ignores any that +were not available when it started up. This will need to be dealt with when +making it support removable drives. |