From 9a5e7222cef7e81fee0c992c4557ac56e9665808 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 20 Oct 2009 10:33:23 -0700 Subject: * Removing cruft left over from the conversion to the new texture sending and UDP code * Changing the cache modules to only initialize the caches if they are actually enabled. Should save a bit of resources from unused cache systems --- .../Region/CoreModules/Asset/CenomeAssetCache.cs | 10 +---- OpenSim/Region/CoreModules/Asset/CoreAssetCache.cs | 7 ++- .../Region/CoreModules/Asset/FlotsamAssetCache.cs | 51 +++++++++------------- .../CoreModules/Asset/GlynnTuckerAssetCache.cs | 43 +++++++++--------- 4 files changed, 45 insertions(+), 66 deletions(-) (limited to 'OpenSim/Region/CoreModules/Asset') diff --git a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs index 66ca7c2..1add0ab 100644 --- a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs @@ -155,14 +155,6 @@ namespace OpenSim.Region.CoreModules.Asset private int m_hitCount; /// - /// Initialize asset cache module with default parameters. - /// - public void Initialize() - { - Initialize(DefaultMaxSize, DefaultMaxCount, DefaultExpirationTime); - } - - /// /// Initialize asset cache module, with custom parameters. /// /// @@ -174,7 +166,7 @@ namespace OpenSim.Region.CoreModules.Asset /// /// Asset's expiration time. /// - public void Initialize(long maximalSize, int maximalCount, TimeSpan expirationTime) + protected void Initialize(long maximalSize, int maximalCount, TimeSpan expirationTime) { if (maximalSize <= 0 || maximalCount <= 0) { diff --git a/OpenSim/Region/CoreModules/Asset/CoreAssetCache.cs b/OpenSim/Region/CoreModules/Asset/CoreAssetCache.cs index 0a7e736..7da5e7a 100644 --- a/OpenSim/Region/CoreModules/Asset/CoreAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/CoreAssetCache.cs @@ -44,10 +44,8 @@ namespace OpenSim.Region.CoreModules.Asset LogManager.GetLogger( MethodBase.GetCurrentMethod().DeclaringType); - private bool m_Enabled = false; - private Cache m_Cache = new Cache(CacheMedium.Memory, - CacheStrategy.Aggressive, - CacheFlags.AllowUpdate); + private bool m_Enabled; + private Cache m_Cache; public string Name { @@ -77,6 +75,7 @@ namespace OpenSim.Region.CoreModules.Asset return; } + m_Cache = new Cache(CacheMedium.Memory, CacheStrategy.Aggressive, CacheFlags.AllowUpdate); m_Enabled = true; m_log.Info("[ASSET CACHE]: Core asset cache enabled"); diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs index d45c35c..cbdca16 100644 --- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs @@ -61,24 +61,23 @@ namespace Flotsam.RegionModules.AssetCache LogManager.GetLogger( MethodBase.GetCurrentMethod().DeclaringType); - private bool m_Enabled = false; + private bool m_Enabled; private const string m_ModuleName = "FlotsamAssetCache"; private const string m_DefaultCacheDirectory = m_ModuleName; private string m_CacheDirectory = m_DefaultCacheDirectory; - - private List m_InvalidChars = new List(); + private readonly List m_InvalidChars = new List(); private int m_LogLevel = 1; private ulong m_HitRateDisplay = 1; // How often to display hit statistics, given in requests - private static ulong m_Requests = 0; - private static ulong m_RequestsForInprogress = 0; - private static ulong m_DiskHits = 0; - private static ulong m_MemoryHits = 0; - private static double m_HitRateMemory = 0.0; - private static double m_HitRateFile = 0.0; + private static ulong m_Requests; + private static ulong m_RequestsForInprogress; + private static ulong m_DiskHits; + private static ulong m_MemoryHits; + private static double m_HitRateMemory; + private static double m_HitRateFile; #if WAIT_ON_INPROGRESS_REQUESTS private Dictionary m_CurrentlyWriting = new Dictionary(); @@ -87,7 +86,7 @@ namespace Flotsam.RegionModules.AssetCache private List m_CurrentlyWriting = new List(); #endif - private ExpiringCache m_MemoryCache = new ExpiringCache(); + private ExpiringCache m_MemoryCache; private bool m_MemoryCacheEnabled = true; // Expiration is expressed in hours. @@ -101,12 +100,12 @@ namespace Flotsam.RegionModules.AssetCache private static int m_CacheDirectoryTierLen = 3; private static int m_CacheWarnAt = 30000; - private System.Timers.Timer m_CachCleanTimer = new System.Timers.Timer(); + private System.Timers.Timer m_CacheCleanTimer; - private IAssetService m_AssetService = null; + private IAssetService m_AssetService; private List m_Scenes = new List(); - private bool m_DeepScanBeforePurge = false; + private bool m_DeepScanBeforePurge; public FlotsamAssetCache() { @@ -128,14 +127,15 @@ namespace Flotsam.RegionModules.AssetCache { IConfig moduleConfig = source.Configs["Modules"]; - if (moduleConfig != null) { - string name = moduleConfig.GetString("AssetCaching", ""); + string name = moduleConfig.GetString("AssetCaching", String.Empty); if (name == Name) { + m_MemoryCache = new ExpiringCache(); m_Enabled = true; + m_log.InfoFormat("[FLOTSAM ASSET CACHE]: {0} enabled", this.Name); IConfig assetConfig = source.Configs["AssetCache"]; @@ -163,21 +163,11 @@ namespace Flotsam.RegionModules.AssetCache m_FileExpirationCleanupTimer = TimeSpan.FromHours(assetConfig.GetDouble("FileCleanupTimer", m_DefaultFileExpiration)); if ((m_FileExpiration > TimeSpan.Zero) && (m_FileExpirationCleanupTimer > TimeSpan.Zero)) { - m_CachCleanTimer.Interval = m_FileExpirationCleanupTimer.TotalMilliseconds; - m_CachCleanTimer.AutoReset = true; - m_CachCleanTimer.Elapsed += CleanupExpiredFiles; - m_CachCleanTimer.Enabled = true; - lock (m_CachCleanTimer) - { - m_CachCleanTimer.Start(); - } - } - else - { - lock (m_CachCleanTimer) - { - m_CachCleanTimer.Enabled = false; - } + m_CacheCleanTimer = new System.Timers.Timer(m_FileExpirationCleanupTimer.TotalMilliseconds); + m_CacheCleanTimer.AutoReset = true; + m_CacheCleanTimer.Elapsed += CleanupExpiredFiles; + lock (m_CacheCleanTimer) + m_CacheCleanTimer.Start(); } m_CacheDirectoryTiers = assetConfig.GetInt("CacheDirectoryTiers", 1); @@ -208,7 +198,6 @@ namespace Flotsam.RegionModules.AssetCache MainConsole.Instance.Commands.AddCommand(this.Name, true, "fcache clear", "fcache clear [file] [memory]", "Remove all assets in the file and/or memory cache", HandleConsoleCommand); MainConsole.Instance.Commands.AddCommand(this.Name, true, "fcache assets", "fcache assets", "Attempt a deep scan and cache of all assets in all scenes", HandleConsoleCommand); MainConsole.Instance.Commands.AddCommand(this.Name, true, "fcache expire", "fcache expire ", "Purge cached assets older then the specified date/time", HandleConsoleCommand); - } } } diff --git a/OpenSim/Region/CoreModules/Asset/GlynnTuckerAssetCache.cs b/OpenSim/Region/CoreModules/Asset/GlynnTuckerAssetCache.cs index 4869f5d..1365e69 100644 --- a/OpenSim/Region/CoreModules/Asset/GlynnTuckerAssetCache.cs +++ b/OpenSim/Region/CoreModules/Asset/GlynnTuckerAssetCache.cs @@ -45,11 +45,13 @@ namespace OpenSim.Region.CoreModules.Asset LogManager.GetLogger( MethodBase.GetCurrentMethod().DeclaringType); - private bool m_Enabled = false; - private ICache m_Cache = new GlynnTucker.Cache.SimpleMemoryCache(); + private bool m_Enabled; + private ICache m_Cache; + private ulong m_Hits; + private ulong m_Requests; // Instrumentation - private uint m_DebugRate = 0; + private uint m_DebugRate; public Type ReplaceableInterface { @@ -72,6 +74,7 @@ namespace OpenSim.Region.CoreModules.Asset if (name == Name) { + m_Cache = new GlynnTucker.Cache.SimpleMemoryCache(); m_Enabled = true; m_log.Info("[ASSET CACHE]: GlynnTucker asset cache enabled"); @@ -80,7 +83,6 @@ namespace OpenSim.Region.CoreModules.Asset IConfig cacheConfig = source.Configs["AssetCache"]; if (cacheConfig != null) m_DebugRate = (uint)cacheConfig.GetInt("DebugRate", 0); - } } } @@ -117,24 +119,6 @@ namespace OpenSim.Region.CoreModules.Asset m_Cache.AddOrUpdate(asset.ID, asset); } - private ulong m_Hits = 0; - private ulong m_Requests = 0; - private void Debug(Object asset) - { - // Temporary instrumentation to measure the hit/miss rate - if (m_DebugRate > 0) - { - m_Requests++; - if (asset != null) - m_Hits++; - - if ((m_Requests % m_DebugRate) == 0) - m_log.DebugFormat("[ASSET CACHE]: Hit Rate {0} / {1} == {2}%", m_Hits, m_Requests, ((float)m_Hits / m_Requests) * 100); - - } - // End instrumentation - } - public AssetBase Get(string id) { Object asset = null; @@ -156,5 +140,20 @@ namespace OpenSim.Region.CoreModules.Asset { m_Cache.Clear(); } + + private void Debug(Object asset) + { + // Temporary instrumentation to measure the hit/miss rate + if (m_DebugRate > 0) + { + ++m_Requests; + if (asset != null) + ++m_Hits; + + if ((m_Requests % m_DebugRate) == 0) + m_log.DebugFormat("[ASSET CACHE]: Hit Rate {0} / {1} == {2}%", m_Hits, m_Requests, ((float)m_Hits / (float)m_Requests) * 100.0f); + } + // End instrumentation + } } } -- cgit v1.1