Author: adrian.chadd
Date: Sun Jul  5 03:22:18 2009
New Revision: 14115

Added:
    wiki/ProjectStoreRebuildChanges.wiki

Log:
Created wiki page through web user interface.

Added: wiki/ProjectStoreRebuildChanges.wiki
==============================================================================
--- (empty file)
+++ wiki/ProjectStoreRebuildChanges.wiki        Sun Jul  5 03:22:18 2009
@@ -0,0 +1,21 @@
+#summary Notes about the current rebuild logic and what needs to change
+
+= Introduction =
+
+The Squid store rebuild and store logging code doesn't scale. It uses sync  
disk IO calls to read and write swaplogs; it makes explicit assumptions  
about the state of the system when writing out the clean swaplog (ie, that  
the clean swaplog event is the only task running.) All of these problems  
make it scale poorly under load and with a lot of disk storage.
+
+= Project Aims =
+
+As nice as it would be to break this out into multiple threads  
doing "stuff", the codebase is still not really ready for any further  
worker thread code just yet. One of the aims is to have this work leave the  
codebase in a sufficiently nice(r) state to make migrating to a worker  
thread model easier in the future.
+
+  * Make "rotate" be quick and simple. Don't have it write out clean  
swaplogs.
+  * Make the logfile writing and reading be async (ie, non blocking)  
rather than the current blocking IO methods used.
+  * Think about how to possibly "fix" COSS rebuilding by combining both  
this new async logfile writing and a "rebuild helper" which can (ab)use  
written out logs for rebuild instead of the current highly dirty method.
+
+= Specific Bits =
+
+Implement a reliable and asynchronous clean "swaplog" writing method; even  
if that is a separate command. This way "rotate" can occur once an hour,  
but "write clean logs" can occur daily.
+
+Modify the AUFS swaplog writing code to use asynchronous IO somehow. This  
can either be using the existing aiops code, or a "writer helper" (akin to  
the logfile daemon code at the moment), or maybe a helper thread if there's  
sufficient motivation.
+
+Modify the AUFS swaplog reading code to use an external helper. External  
helper programs already exist which implement "cat swaplog" and "generate a  
swaplog from the directory contents".
\ No newline at end of file

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"lusca-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/lusca-commit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to