diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-02-03 16:48:26 -0500 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-02-03 16:48:26 -0500 |
commit | 9d54cc4659248f9820f47a021b694405d75404a8 (patch) | |
tree | 6d2b775006630ace819299997312f10b979e7ff4 /doc/todo | |
parent | 38affb0c1c4e2b89beb63d6f8dc3f172eee7bd02 (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')
-rw-r--r-- | doc/todo/aggregate_locking.mdwn | 6 |
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]] |