public String toString() {
	StringBuilder sb = new StringBuilder();

	sb.append("------------ RunningStatus ------------\n");
	sb.append("[taskId] " + taskId + "\n");
	sb.append("[RunningPhase] " + runningPhase + "\n");
	sb.append("[is map() running] " + isMapRunning + "\n\n");
	
	sb.append("------------ map() ------------\n");
	sb.append(mapFunc + "\n");
	
	sb.append("------------ SpillBuffer ------------\n");
	sb.append(spillBuffer + "\n");
	
	if(memCombineFunc != null) {
	    sb.append("----- memCombine() -----\n");
	    sb.append(memCombineFunc);
	    sb.append("\n");
	}
	
	sb.append("------------ Spills ------------\n"); 
	for(int i = 0; i < spills.size(); i++) {
	    sb.append("[Spill " + i + "] " + spills.get(i) + "\n");
	}
	sb.append("\n");
	
	if(diskCombineFunc != null) {
	    sb.append("------------ diskCombine() ------------\n");
	    sb.append(diskCombineFunc + "\n");
	    
	}
	
	sb.append("------------ Segments ------------\n");
	for(Segment seg : mapOutputSegs)
	    sb.append(seg + "\n");
	
	return sb.toString();
	
    }