summaryrefslogtreecommitdiff
path: root/doc/todo/aggregate_locking.mdwn
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-02-03 16:48:26 -0500
committerJoey Hess <joey@kodama.kitenet.net>2008-02-03 16:48:26 -0500
commit9d54cc4659248f9820f47a021b694405d75404a8 (patch)
tree6d2b775006630ace819299997312f10b979e7ff4 /doc/todo/aggregate_locking.mdwn
parent38affb0c1c4e2b89beb63d6f8dc3f172eee7bd02 (diff)
implement aggregate_locking design
Now aggregation will not lock the wiki. Any changes made during aggregaton are merged in with the changed state accumulated while aggregating. A separate lock file prevents multiple concurrent aggregators. Garbage collection of orphaned guids is much improved. loadstate() is only called once per process, so tricky support for reloading wiki state is not needed. (Tested fairly thuroughly.)
Diffstat (limited to 'doc/todo/aggregate_locking.mdwn')
-rw-r--r--doc/todo/aggregate_locking.mdwn6
1 files changed, 2 insertions, 4 deletions
diff --git a/doc/todo/aggregate_locking.mdwn b/doc/todo/aggregate_locking.mdwn
index 91df662a7..b6c82e923 100644
--- a/doc/todo/aggregate_locking.mdwn
+++ b/doc/todo/aggregate_locking.mdwn
@@ -46,16 +46,12 @@ would be loaded, and there would be no reason to worry about aggregating.
Or aggregation could be kept in checkconfig, like so:
-* lock wiki
* load aggregation state
-* unlock wiki
* get list of feeds needing aggregation
* exit if none
* attempt to take aggregation lock, exit if another aggregation is happening
* fork a child process to do the aggregation
- * lock wiki
* load wiki state (needed for aggregation to run)
- * unlock wiki
* aggregate
* lock wiki
* reload aggregation state
@@ -64,3 +60,5 @@ Or aggregation could be kept in checkconfig, like so:
* drop aggregation lock
* force rebuild of sourcepages of feeds that were aggregated
* exit checkconfig and continue with usual refresh process
+
+[[done]]