public virtual void TestRetryCacheRebuild()
        {
            DFSTestUtil.RunOperations(cluster, filesystem, conf, BlockSize, 0);
            FSNamesystem namesystem = cluster.GetNamesystem();
            LightWeightCache <RetryCache.CacheEntry, RetryCache.CacheEntry> cacheSet = (LightWeightCache
                                                                                        <RetryCache.CacheEntry, RetryCache.CacheEntry>)namesystem.GetRetryCache().GetCacheSet
                                                                                           ();

            NUnit.Framework.Assert.AreEqual(25, cacheSet.Size());
            IDictionary <RetryCache.CacheEntry, RetryCache.CacheEntry> oldEntries = new Dictionary
                                                                                    <RetryCache.CacheEntry, RetryCache.CacheEntry>();
            IEnumerator <RetryCache.CacheEntry> iter = cacheSet.GetEnumerator();

            while (iter.HasNext())
            {
                RetryCache.CacheEntry entry = iter.Next();
                oldEntries[entry] = entry;
            }
            // restart NameNode
            cluster.RestartNameNode();
            cluster.WaitActive();
            namesystem = cluster.GetNamesystem();
            // check retry cache
            NUnit.Framework.Assert.IsTrue(namesystem.HasRetryCache());
            cacheSet = (LightWeightCache <RetryCache.CacheEntry, RetryCache.CacheEntry>)namesystem
                       .GetRetryCache().GetCacheSet();
            NUnit.Framework.Assert.AreEqual(25, cacheSet.Size());
            iter = cacheSet.GetEnumerator();
            while (iter.HasNext())
            {
                RetryCache.CacheEntry entry = iter.Next();
                NUnit.Framework.Assert.IsTrue(oldEntries.Contains(entry));
            }
        }
Exemple #2
0
 /// <summary>Constructor.</summary>
 /// <param name="cacheSize">The size of the access privilege cache.</param>
 /// <param name="expirationPeriodNano">The period</param>
 /// <param name="matchingHosts">A string specifying one or multiple matchers.</param>
 internal NfsExports(int cacheSize, long expirationPeriodNano, string matchHosts)
 {
     this.cacheExpirationPeriod = expirationPeriodNano;
     accessCache = new LightWeightCache <NfsExports.AccessCacheEntry, NfsExports.AccessCacheEntry
                                         >(cacheSize, cacheSize, expirationPeriodNano, 0);
     string[] matchStrings = matchHosts.Split(CommonConfigurationKeys.NfsExportsAllowedHostsSeparator
                                              );
     mMatches = new AList <NfsExports.Match>(matchStrings.Length);
     foreach (string mStr in matchStrings)
     {
         if (Log.IsDebugEnabled())
         {
             Log.Debug("Processing match string '" + mStr + "'");
         }
         mStr = mStr.Trim();
         if (!mStr.IsEmpty())
         {
             mMatches.AddItem(GetMatch(mStr));
         }
     }
 }