예제 #1
0
        private void DeleteReplica(ReplicaInfo replicaToDelete)
        {
            // Delete the files on disk. Failure here is okay.
            FilePath blockFile = replicaToDelete.GetBlockFile();

            if (!blockFile.Delete())
            {
                Log.Warn("Failed to delete block file " + blockFile);
            }
            FilePath metaFile = replicaToDelete.GetMetaFile();

            if (!metaFile.Delete())
            {
                Log.Warn("Failed to delete meta file " + metaFile);
            }
        }
예제 #2
0
        /// <exception cref="System.IO.IOException"/>
        private static void CreateUnlinkTmpFile(ReplicaInfo replicaInfo, bool changeBlockFile
                                                , bool isRename)
        {
            FilePath src;

            if (changeBlockFile)
            {
                src = replicaInfo.GetBlockFile();
            }
            else
            {
                src = replicaInfo.GetMetaFile();
            }
            FilePath dst = DatanodeUtil.GetUnlinkTmpFile(src);

            if (isRename)
            {
                src.RenameTo(dst);
            }
            else
            {
                FileInputStream @in = new FileInputStream(src);
                try
                {
                    FileOutputStream @out = new FileOutputStream(dst);
                    try
                    {
                        IOUtils.CopyBytes(@in, @out, 1);
                    }
                    finally
                    {
                        @out.Close();
                    }
                }
                finally
                {
                    @in.Close();
                }
            }
        }