From: Eric M. <er...@je...> - 2006-02-03 04:57:04
|
I implemented the parallelization of macsuck, arpnip, and nbtwalk in the same manner as Alexander. I backed out the changes due to some concerns: The forked processes use shared memory as a common method to update variables. For macsuck, arpnip, and nbtwalk these are just varibles to calculate stats. For discovery they are much more important. What worried me is that the main netdisco program is not a true daemon (SF - 1252726) with a lock file to prevent two instances from running. So, two cron jobs could overlap or a user could initiate a job from the web interface. These will all update the same shared memory variable. What I couldn't figure out in the current state is how to prevent this. In Alexander's thesis, he states it would be better to implement a controller process and worker processes. I think that would be the correct approach, but it would take a significant effort. Rework the core as a true daemon with all jobs submitted to the daemon for processing and split out the client code into a separate program. However, if we did this we could also address another request which was to enable logging on all actions (logging of CLI commands - SF 1096779 ) not just those initiated through the web interface. This would be good for the program to pass auditing in a regulated environment (HIPAA). I don't thing proper daemonizing would be that difficult. A good architecture for the revised client implementation and implementation of the scheduled jobs in that model is what I'm struggling with. This could create some new opportunities, a web services type interface to enable other network management or security tools to interface more easily to NetDisco? I personally would like to hold off on this work until we release 0.95. Potentially put it as something to look at for 0.96+. Let me know if I'm missing something on the parallelization and your thoughts. Thanks, Eric Quoting Bill Fenner <fe...@gm...>: > Spooky, Mark, I was just working on creating a 0.95 tree with > Alexander's changes to start playing. > > I was planning on splitting the changes out into feature sets - I'm > most interested in the parallelization of macsuck, and not (so far) in > the STP stuff. > > Bill > |