Issue #1965 has been updated by luke. Status changed from Accepted to Ready for Testing
I've implemented an initial version of this in the refactor/0.24.x/fewerfiles branch in my repo. If anyone experiencing RAM problems could give this a try, I'd like to hear if it has any impact on the server. I expect it'll have a bigger impact there than on the client, especially for people with large amounts of code, which is particularly true on sites that use multiple environments. I've done a bit of testing, and looks like there's about a 7x benefit to using a simple hash to translate the filename to the index. This results in two copies of each file name, worst case. ---------------------------------------- Bug #1965: File paths take up much memory http://projects.reductivelabs.com:80/issues/1965 Author: luke Status: Ready for Testing Priority: Normal Assigned to: luke Category: plumbing Target version: 0.25.0 Complexity: Unknown Affected version: 0.24.7 Keywords: Larry Ludwig and I did some memory leak analysis, and found that, especially with multiple environments, file paths can take a significant amount of memory. Based on some simplistic analysis, they can take up to 50% of the memory in the master. We need some kind of file collection we can use to store no more than one copy of each file path during parsing. We should probably have a similar file collection in use on the client, since each resource and parameter also stores the file that it was defined in. Then we use a FileMangler module or something that interactions with this collection. Something like: <pre> module Puppet::Util::FileMangler def file=(path) @file_reference = file_collection.file_reference(@path) end def file file_collection.file_path(@file_reference) end end </pre> ---------------------------------------- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" 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/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
