aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-06-26 22:31:32 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-06-26 22:31:32 -0400
commit3ede3a809725a1ce612730218aa52349f785b0de (patch)
tree0fe0c01fe1910e702da3a06c6d26a3187a2cb2e8 /doc
parent67c8ef7de25ad6f433db2fa5d5fc764dd515a5b2 (diff)
parent6aee7e5a8b581b342d0c34d25b57fdb60a3c0821 (diff)
Merge branch 'master' into assistant
Diffstat (limited to 'doc')
-rw-r--r--doc/design/assistant/blog/day_17__push_queue_prune.mdwn19
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.