diff options
author | Joey Hess <joey@kitenet.net> | 2012-06-26 19:25:46 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-06-26 19:25:46 -0400 |
commit | 1eff74dd44d9124fe0fd9c480e2e36cdd562c0cc (patch) | |
tree | 96a823f2d8f62b169165fbf5e09d293155c5fd9e | |
parent | 7e62e57f8c9ea49250399f385ee898667df80800 (diff) |
blog for the day
-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. |