Пример #1
0
 /// <exception cref="System.IO.IOException"/>
 public void Apply(JournalSet.JournalAndStream jas)
 {
     if (jas.IsActive())
     {
         jas.GetCurrentStream().Flush();
     }
 }
Пример #2
0
 /// <exception cref="System.IO.IOException"/>
 public void Apply(JournalSet.JournalAndStream jas)
 {
     if (jas.IsActive())
     {
         jas.GetCurrentStream().Create(layoutVersion);
     }
 }
Пример #3
0
 /// <exception cref="System.IO.IOException"/>
 public void Apply(JournalSet.JournalAndStream jas)
 {
     if (jas.IsActive())
     {
         jas.GetCurrentStream().WriteRaw(data, offset, length);
     }
 }
Пример #4
0
 /// <exception cref="System.IO.IOException"/>
 public void Apply(JournalSet.JournalAndStream jas)
 {
     if (jas.IsActive())
     {
         jas.CloseStream();
         jas.GetManager().FinalizeLogSegment(firstTxId, lastTxId);
     }
 }
        public virtual void TestSingleRequiredFailedEditsDirOnSetReadyToFlush()
        {
            // Set one of the edits dirs to be required.
            string[] editsDirs = cluster.GetConfiguration(0).GetTrimmedStrings(DFSConfigKeys.
                                                                               DfsNamenodeNameDirKey);
            ShutDownMiniCluster();
            Configuration conf = new HdfsConfiguration();

            conf.Set(DFSConfigKeys.DfsNamenodeEditsDirRequiredKey, editsDirs[0]);
            conf.SetInt(DFSConfigKeys.DfsNamenodeEditsDirMinimumKey, 0);
            conf.SetInt(DFSConfigKeys.DfsNamenodeCheckedVolumesMinimumKey, 0);
            SetUpMiniCluster(conf, true);
            NUnit.Framework.Assert.IsTrue(DoAnEdit());
            // Invalidated the one required edits journal.
            InvalidateEditsDirAtIndex(0, false, false);
            JournalSet.JournalAndStream nonRequiredJas = GetJournalAndStream(1);
            EditLogFileOutputStream     nonRequiredSpy = SpyOnStream(nonRequiredJas);

            // The NN has not terminated (no ExitException thrown)
            // ..and that the other stream is active.
            NUnit.Framework.Assert.IsTrue(nonRequiredJas.IsActive());
            try
            {
                DoAnEdit();
                NUnit.Framework.Assert.Fail("A single failure of a required journal should have halted the NN"
                                            );
            }
            catch (RemoteException re)
            {
                NUnit.Framework.Assert.IsTrue(re.GetClassName().Contains("ExitException"));
                GenericTestUtils.AssertExceptionContains("setReadyToFlush failed for required journal"
                                                         , re);
            }
            // Since the required directory failed setReadyToFlush, and that
            // directory was listed prior to the non-required directory,
            // we should not call setReadyToFlush on the non-required
            // directory. Regression test for HDFS-2874.
            Org.Mockito.Mockito.Verify(nonRequiredSpy, Org.Mockito.Mockito.Never()).SetReadyToFlush
                ();
            NUnit.Framework.Assert.IsFalse(nonRequiredJas.IsActive());
        }