@Override
	public void delete(String path) throws IOException {
		
		PrintWriter out = null;
		String info = null;
		if (Hdfs.Core.DEBUG) {
			out = new PrintWriter(new BufferedWriter(new FileWriter("delete.log", true)));
			info = String.format("%s[request]:\t%s\n", new Date().toString(), path);
			out.write(info);
		}
		
		HDFSFile file = this.fileTbl.get(path);
		
		
		
		if (file == null) {
			if (Hdfs.Core.DEBUG) {
				info = String.format("%s[result:\t%s\n", new Date().toString(), "failure");
				out.write(info);
				out.close();
			}
			throw new IOException("No such file: " + path);
		}
		
		for (HDFSChunk chunk : file.getChunkList()) {
			
			for (DataNodeEntry dataNode : chunk.getAllLocations()) {
				
				String tid = (new Date()).getTime() + "";
				DeleteChunkTask task = new DeleteChunkTask(tid, chunk.getChunkName(), file.getName());
				
				String dataNodeName = dataNode.getNodeName();
				List<Task> taskList = this.dataNodeTaskTbl.get(dataNodeName);
				taskList.add(task);
			}
		}
		
		this.fileTbl.remove(path);
		
		if (Hdfs.Core.DEBUG) {		
			info = String.format("%s[result:\t%s\n", new Date().toString(), "succeeded");
			out.write(info);
			out.close();
		}

	}