tajo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hyun...@apache.org
Subject [2/3] TAJO-261: Rearrange default port numbers and config names. (hyunsik)
Date Mon, 21 Oct 2013 06:38:26 GMT
http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
index cb35954..e7cb7a0 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
@@ -512,7 +512,7 @@ public class SubQuery implements EventHandler<SubQueryEvent> {
         LOG.info("Smaller Table's volume is approximately " + mb + " MB");
         // determine the number of task
         int taskNum = (int) Math.ceil((double)mb /
-            conf.getIntVar(ConfVars.JOIN_PARTITION_VOLUME));
+            conf.getIntVar(ConfVars.DIST_QUERY_JOIN_PARTITION_VOLUME));
         LOG.info("The determined number of join partitions is " + taskNum);
         return taskNum;
 
@@ -528,7 +528,7 @@ public class SubQuery implements EventHandler<SubQueryEvent> {
           LOG.info("Table's volume is approximately " + mb + " MB");
           // determine the number of task
           int taskNum = (int) Math.ceil((double)mb /
-              conf.getIntVar(ConfVars.AGGREGATION_PARTITION_VOLUME));
+              conf.getIntVar(ConfVars.DIST_QUERY_GROUPBY_PARTITION_VOLUME));
           LOG.info("The determined number of aggregation partitions is " + taskNum);
           return taskNum;
         }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
index d1a0c96..db06b88 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.tajo.ExecutionBlockId;
 import org.apache.tajo.QueryId;
 import org.apache.tajo.QueryIdFactory;
+import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.ipc.TajoMasterProtocol;
 import org.apache.tajo.master.TajoMaster;
 import org.apache.tajo.master.querymaster.QueryInProgress;
@@ -66,8 +67,8 @@ public class TajoWorkerResourceManager implements WorkerResourceManager {
   public TajoWorkerResourceManager(TajoMaster.MasterContext masterContext) {
     this.masterContext = masterContext;
     this.queryIdSeed = String.valueOf(System.currentTimeMillis());
-    this.queryMasterMemoryMB = masterContext.getConf().getInt("tajo.querymaster.memoryMB", 512);
-    this.queryMasterDiskSlot = masterContext.getConf().getInt("tajo.querymaster.diskSlot", 1);
+    this.queryMasterMemoryMB = masterContext.getConf().getIntVar(TajoConf.ConfVars.YARN_RM_QUERY_MASTER_MEMORY_MB);
+    this.queryMasterDiskSlot = masterContext.getConf().getIntVar(TajoConf.ConfVars.YARN_RM_QUERY_MASTER_DISKS);
 
     requestQueue = new LinkedBlockingDeque<WorkerResourceRequest>();
     reAllocationList = new ArrayList<WorkerResourceRequest>();
@@ -222,7 +223,7 @@ public class TajoWorkerResourceManager implements WorkerResourceManager {
 
               for(WorkerResource eachWorker: workerResources) {
                 workerHosts.add(TajoMasterProtocol.WorkerAllocatedResource.newBuilder()
-                    .setWorkerHostAndPort(eachWorker.getAllocatedHost() + ":" + eachWorker.getManagerPort())
+                    .setWorkerHostAndPort(eachWorker.getAllocatedHost() + ":" + eachWorker.getPeerRpcPort())
                     .setWorkerPullServerPort(eachWorker.getPullServerPort())
                     .build());
               }
@@ -368,7 +369,7 @@ public class TajoWorkerResourceManager implements WorkerResourceManager {
 
         int[] ports = new int[] { request.getTajoWorkerPort(), request.getTajoWorkerClientPort() };
 
-        workerResource.setManagerPort(request.getTajoWorkerPort());
+        workerResource.setPeerRpcPort(request.getTajoWorkerPort());
         workerResource.setClientPort(request.getTajoWorkerClientPort());
         workerResource.setPullServerPort(request.getTajoWorkerPullServerPort());
         workerResource.setHttpPort(request.getTajoWorkerHttpPort());

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/WorkerResource.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/WorkerResource.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/WorkerResource.java
index a1a4c3e..fad129a 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/WorkerResource.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/master/rm/WorkerResource.java
@@ -28,7 +28,7 @@ public class WorkerResource {
   private static final Log LOG = LogFactory.getLog(WorkerResource.class);
 
   private String allocatedHost;
-  private int managerPort;
+  private int peerRpcPort;
   private int clientPort;
   private int pullServerPort;
   private int httpPort;
@@ -58,11 +58,11 @@ public class WorkerResource {
   private long lastHeartbeat;
 
   public String getId() {
-    return allocatedHost + ":" + managerPort;
+    return allocatedHost + ":" + peerRpcPort;
   }
 
   public void copyId(WorkerResource workerResource) {
-    managerPort = workerResource.getManagerPort();
+    peerRpcPort = workerResource.getPeerRpcPort();
     allocatedHost = workerResource.getAllocatedHost();
   }
 
@@ -140,7 +140,7 @@ public class WorkerResource {
   }
 
   public String portsToStr() {
-    return managerPort + "," + clientPort + "," + pullServerPort;
+    return peerRpcPort + "," + clientPort + "," + pullServerPort;
   }
 
   public void setLastHeartbeat(long heartbeatTime) {
@@ -222,7 +222,7 @@ public class WorkerResource {
 
   public int getSlots() {
     //TODO what is slot? 512MB = 1slot?
-    return getMemoryMBSlots()/512;
+    return getMemoryMBSlots() / 512;
   }
 
   public int getAvaliableSlots() {
@@ -235,12 +235,12 @@ public class WorkerResource {
     return getUsedMemoryMBSlots()/512;
   }
 
-  public int getManagerPort() {
-    return managerPort;
+  public int getPeerRpcPort() {
+    return peerRpcPort;
   }
 
-  public void setManagerPort(int managerPort) {
-    this.managerPort = managerPort;
+  public void setPeerRpcPort(int peerRpcPort) {
+    this.peerRpcPort = peerRpcPort;
   }
 
   public int getClientPort() {

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/JSPUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/JSPUtil.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/JSPUtil.java
index 8b2a234..28598d2 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/JSPUtil.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/util/JSPUtil.java
@@ -19,6 +19,7 @@
 package org.apache.tajo.util;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.master.querymaster.QueryInProgress;
 import org.apache.tajo.master.querymaster.QueryMasterTask;
 import org.apache.tajo.master.querymaster.QueryUnit;
@@ -28,6 +29,8 @@ import org.apache.tajo.worker.TaskRunner;
 import java.text.DecimalFormat;
 import java.util.*;
 
+import static org.apache.tajo.conf.TajoConf.ConfVars;
+
 public class JSPUtil {
   static DecimalFormat decimalF = new DecimalFormat("###.0");
 
@@ -55,9 +58,9 @@ public class JSPUtil {
 
   public static String getTajoMasterHttpAddr(Configuration config) {
     try {
-      String[] masterAddr = config.get("tajo.master.manager.addr").split(":");
-
-      return masterAddr[0] + ":" + config.getInt("tajo.master.http.port", 8080);
+      TajoConf conf = (TajoConf) config;
+      String [] masterAddr = conf.getVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS).split(":");
+      return masterAddr[0] + ":" + conf.getVar(ConfVars.TAJO_MASTER_INFO_ADDRESS).split(":")[1];
     } catch (Exception e) {
       e.printStackTrace();
       return e.getMessage();

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/webapp/StaticHttpServer.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/webapp/StaticHttpServer.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/webapp/StaticHttpServer.java
index b057561..09426e0 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/webapp/StaticHttpServer.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/webapp/StaticHttpServer.java
@@ -21,9 +21,12 @@ package org.apache.tajo.webapp;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.conf.TajoConf.ConfVars;
+import org.apache.tajo.master.TajoMaster;
+import org.apache.tajo.worker.TajoWorker;
 import org.mortbay.jetty.Connector;
 
 import java.io.IOException;
+import java.net.Inet4Address;
 
 public class StaticHttpServer extends HttpServer {
   private static StaticHttpServer instance = null;
@@ -43,7 +46,11 @@ public class StaticHttpServer extends HttpServer {
     String addr = bindAddress;
     if(instance == null) {
       if(bindAddress == null || bindAddress.compareTo("") == 0) {
-        addr = conf.getVar(ConfVars.TASKRUNNER_LISTENER_ADDRESS).split(":")[0];
+        if (containerObject instanceof TajoMaster) {
+          addr = conf.getVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS).split(":")[0];
+        } else if (containerObject instanceof TajoWorker) {
+          addr = Inet4Address.getLocalHost().getHostName();
+        }
       }
       
       instance = new StaticHttpServer(containerObject, name, addr, port,

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
index 385add1..e42de27 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
@@ -74,7 +74,7 @@ public class TajoResourceAllocator extends AbstractResourceAllocator {
   public TajoResourceAllocator(QueryMasterTask.QueryMasterTaskContext queryTaskContext) {
     this.queryTaskContext = queryTaskContext;
     executorService = Executors.newFixedThreadPool(
-        queryTaskContext.getConf().getIntVar(TajoConf.ConfVars.AM_TASKRUNNER_LAUNCH_PARALLEL_NUM));
+        queryTaskContext.getConf().getIntVar(TajoConf.ConfVars.YARN_RM_TASKRUNNER_LAUNCH_PARALLEL_NUM));
   }
 
   @Override
@@ -277,7 +277,7 @@ public class TajoResourceAllocator extends AbstractResourceAllocator {
 
           WorkerResource workerResource = new WorkerResource();
           workerResource.setAllocatedHost(nodeId.getHost());
-          workerResource.setManagerPort(nodeId.getPort());
+          workerResource.setPeerRpcPort(nodeId.getPort());
           workerResource.setPullServerPort(eachWorker.getWorkerPullServerPort());
           workerResource.setMemoryMBSlots(requiredMemoryMBSlot);
           workerResource.setDiskSlots(requiredDiskSlots);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorker.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorker.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorker.java
index 96ea95e..6152da7 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorker.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorker.java
@@ -55,13 +55,15 @@ import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.tajo.conf.TajoConf.ConfVars;
+
 public class TajoWorker extends CompositeService {
   public static PrimitiveProtos.BoolProto TRUE_PROTO = PrimitiveProtos.BoolProto.newBuilder().setValue(true).build();
   public static PrimitiveProtos.BoolProto FALSE_PROTO = PrimitiveProtos.BoolProto.newBuilder().setValue(false).build();
 
   private static final Log LOG = LogFactory.getLog(TajoWorker.class);
 
-  private TajoConf tajoConf;
+  private TajoConf systemConf;
 
   private StaticHttpServer webServer;
 
@@ -107,26 +109,24 @@ public class TajoWorker extends CompositeService {
   public void init(Configuration conf) {
     Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook()));
 
-    this.tajoConf = (TajoConf)conf;
-    RackResolver.init(tajoConf);
+    this.systemConf = (TajoConf)conf;
+    RackResolver.init(systemConf);
 
     workerContext = new WorkerContext();
 
-    String resourceManagerClassName = conf.get("tajo.resource.manager",
-        TajoWorkerResourceManager.class.getCanonicalName());
+    String resourceManagerClassName = systemConf.getVar(ConfVars.RESOURCE_MANAGER_CLASS);
 
     boolean randomPort = true;
     if(resourceManagerClassName.indexOf(TajoWorkerResourceManager.class.getName()) >= 0) {
       randomPort = false;
     }
-    int clientPort = tajoConf.getInt("tajo.worker.client.rpc.port", 8091);
-    int managerPort = tajoConf.getInt("tajo.worker.manager.rpc.port", 8092);
+    int clientPort = systemConf.getSocketAddrVar(ConfVars.WORKER_CLIENT_RPC_ADDRESS).getPort();
+    int peerRpcPort = systemConf.getSocketAddrVar(ConfVars.WORKER_PEER_RPC_ADDRESS).getPort();
 
     if(randomPort) {
       clientPort = 0;
-      managerPort = 0;
-      tajoConf.setInt(TajoConf.ConfVars.PULLSERVER_PORT.varname, 0);
-      //infoPort = 0;
+      peerRpcPort = 0;
+      systemConf.setIntVar(ConfVars.PULLSERVER_PORT, 0);
     }
 
     if(!"qm".equals(daemonMode)) {
@@ -143,16 +143,16 @@ public class TajoWorker extends CompositeService {
       tajoWorkerClientService = new TajoWorkerClientService(workerContext, clientPort);
       addService(tajoWorkerClientService);
 
-      tajoWorkerManagerService = new TajoWorkerManagerService(workerContext, managerPort);
+      tajoWorkerManagerService = new TajoWorkerManagerService(workerContext, peerRpcPort);
       addService(tajoWorkerManagerService);
-      LOG.info("Tajo worker started: mode=" + daemonMode + ", clientPort=" + clientPort + ", managerPort="
-          + managerPort);
+      LOG.info("Tajo worker started: mode=" + daemonMode + ", clientPort=" + clientPort + ", peerRpcPort="
+          + peerRpcPort);
 
-      if (!tajoConf.get(CommonTestingUtil.TAJO_TEST, "FALSE").equalsIgnoreCase("TRUE")) {
+      if (!systemConf.get(CommonTestingUtil.TAJO_TEST, "FALSE").equalsIgnoreCase("TRUE")) {
         try {
-          httpPort = tajoConf.getInt("tajo.worker.http.port", 28080);
+          httpPort = systemConf.getSocketAddrVar(ConfVars.WORKER_INFO_ADDRESS).getPort();
           webServer = StaticHttpServer.getInstance(this ,"worker", null, httpPort ,
-              true, null, tajoConf, null);
+              true, null, systemConf, null);
           webServer.start();
           httpPort = webServer.getPort();
           LOG.info("Worker info server started:" + httpPort);
@@ -160,8 +160,8 @@ public class TajoWorker extends CompositeService {
           LOG.error(e.getMessage(), e);
         }
       }
-      LOG.info("Tajo worker started: mode=" + daemonMode + ", clientPort=" + clientPort + ", managerPort="
-          + managerPort);
+      LOG.info("Tajo worker started: mode=" + daemonMode + ", clientPort=" + clientPort + ", peerRpcPort="
+          + peerRpcPort);
 
     } else {
       LOG.info("Tajo worker started: mode=" + daemonMode);
@@ -291,7 +291,7 @@ public class TajoWorker extends CompositeService {
     } else if("tr".equals(daemonMode)) { //TaskRunner mode
       taskRunnerManager.startTask(params);
     } else { //Standby mode
-      connectToTajoMaster(tajoConf.get("tajo.master.manager.addr"));
+      connectToTajoMaster(systemConf.getVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS));
       connectToCatalog();
       workerHeartbeatThread = new WorkerHeartbeatThread();
       workerHeartbeatThread.start();
@@ -320,11 +320,8 @@ public class TajoWorker extends CompositeService {
   }
 
   private void connectToCatalog() {
-    // TODO: To be improved. it's a hack. It assumes that CatalogServer is embedded in TajoMaster.
-    String catalogAddr = tajoConf.getVar(TajoConf.ConfVars.CATALOG_ADDRESS);
-    //int port = Integer.parseInt(tajoConf.getVar(TajoConf.ConfVars.CATALOG_ADDRESS).split(":")[1]);
     try {
-      catalogClient = new CatalogClient(tajoConf);
+      catalogClient = new CatalogClient(systemConf);
     } catch (IOException e) {
       e.printStackTrace();
     }
@@ -332,16 +329,15 @@ public class TajoWorker extends CompositeService {
 
   class WorkerHeartbeatThread extends Thread {
     TajoMasterProtocol.ServerStatusProto.System systemInfo;
-    List<TajoMasterProtocol.ServerStatusProto.Disk> diskInfos =
-        new ArrayList<TajoMasterProtocol.ServerStatusProto.Disk>();
-    int workerDiskSlots;
+    List<TajoMasterProtocol.ServerStatusProto.Disk> diskInfos = new ArrayList<TajoMasterProtocol.ServerStatusProto.Disk>();
+    int workerDisksNum;
     List<File> mountPaths;
 
     public WorkerHeartbeatThread() {
-      int workerMemoryMBSlots;
-      int workerCpuCoreSlots;
+      int workerMemoryMB;
+      int workerCpuCoreNum;
 
-      boolean useSystemInfo = tajoConf.getBoolean("tajo.worker.slots.use.os.info", false);
+      boolean dedicatedResource = systemConf.getBoolVar(ConfVars.WORKER_RESOURCE_DEDICATED);
 
       try {
         mountPaths = getMountPath();
@@ -349,29 +345,29 @@ public class TajoWorker extends CompositeService {
         LOG.error(e.getMessage(), e);
       }
 
-      if(useSystemInfo) {
-        float memoryRatio = tajoConf.getFloat("tajo.worker.slots.os.memory.ratio", 0.8f);
-        workerMemoryMBSlots = getTotalMemoryMB();
-        workerMemoryMBSlots = (int)((float)(workerMemoryMBSlots) * memoryRatio);
-        workerCpuCoreSlots = Runtime.getRuntime().availableProcessors();
+      if(dedicatedResource) {
+        float dedicatedMemoryRatio = systemConf.getFloatVar(ConfVars.WORKER_RESOURCE_DEDICATED_MEMORY_RATIO);
+        int totalMemory = getTotalMemoryMB();
+        workerMemoryMB = (int) ((float) (totalMemory) * dedicatedMemoryRatio);
+        workerCpuCoreNum = Runtime.getRuntime().availableProcessors();
         if(mountPaths == null) {
-          workerDiskSlots = 2;
+          workerDisksNum = ConfVars.WORKER_RESOURCE_AVAILABLE_DISKS.defaultIntVal;
         } else {
-          workerDiskSlots = mountPaths.size();
+          workerDisksNum = mountPaths.size();
         }
       } else {
-        workerMemoryMBSlots = tajoConf.getInt("tajo.worker.slots.memoryMB", 2048);
-        workerDiskSlots = tajoConf.getInt("tajo.worker.slots.disk", 2);
-        workerCpuCoreSlots = tajoConf.getInt("tajo.worker.slots.cpu.core", 4);
+        // TODO - it's a hack and it must be fixed
+        //workerMemoryMB = systemConf.getIntVar(ConfVars.WORKER_RESOURCE_AVAILABLE_MEMORY_MB);
+        workerMemoryMB = 512 * systemConf.getIntVar(ConfVars.WORKER_EXECUTION_MAX_SLOTS);
+        workerDisksNum = systemConf.getIntVar(ConfVars.WORKER_RESOURCE_AVAILABLE_DISKS);
+        workerCpuCoreNum = systemConf.getIntVar(ConfVars.WORKER_RESOURCE_AVAILABLE_CPU_CORES);
       }
 
-      workerDiskSlots = workerDiskSlots * tajoConf.getInt("tajo.worker.slots.disk.concurrency", 4);
-
       systemInfo = TajoMasterProtocol.ServerStatusProto.System.newBuilder()
-          .setAvailableProcessors(workerCpuCoreSlots)
+          .setAvailableProcessors(workerCpuCoreNum)
           .setFreeMemoryMB(0)
           .setMaxMemoryMB(0)
-          .setTotalMemoryMB(workerMemoryMBSlots)
+          .setTotalMemoryMB(workerMemoryMB)
           .build();
     }
 
@@ -408,7 +404,7 @@ public class TajoWorker extends CompositeService {
             .addAllDisk(diskInfos)
             .setRunningTaskNum(taskRunnerManager == null ? 1 : taskRunnerManager.getNumTasks())   //TODO
             .setSystem(systemInfo)
-            .setDiskSlots(workerDiskSlots)
+            .setDiskSlots(workerDisksNum)
             .setJvmHeap(jvmHeap)
             .build();
 
@@ -526,8 +522,6 @@ public class TajoWorker extends CompositeService {
           break;
         }
 
-        System.out.println(line);
-
         int indexStart = line.indexOf(" on /");
         int indexEnd = line.indexOf(" ", indexStart + 4);
 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerClientService.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerClientService.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerClientService.java
index 177e920..ef10254 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerClientService.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerClientService.java
@@ -88,7 +88,6 @@ public class TajoWorkerClientService extends AbstractService {
     }
     // Get the master address
     LOG.info(TajoWorkerClientService.class.getSimpleName() + " is bind to " + addr);
-    //queryConf.setVar(TajoConf.ConfVars.TASKRUNNER_LISTENER_ADDRESS, addr);
 
     super.init(conf);
   }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java
index 4011829..c3e7130 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java
@@ -30,8 +30,8 @@ import org.apache.tajo.QueryId;
 import org.apache.tajo.QueryUnitAttemptId;
 import org.apache.tajo.TajoIdProtos;
 import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.ipc.TajoWorkerProtocol;
 import org.apache.tajo.engine.query.QueryContext;
+import org.apache.tajo.ipc.TajoWorkerProtocol;
 import org.apache.tajo.master.TaskSchedulerImpl;
 import org.apache.tajo.master.event.*;
 import org.apache.tajo.master.querymaster.QueryMaster;
@@ -67,6 +67,7 @@ public class TajoWorkerManagerService extends CompositeService
 
   @Override
   public void init(Configuration conf) {
+    TajoConf tajoConf = (TajoConf) conf;
     try {
       // Setup RPC server
       InetSocketAddress initIsa =
@@ -91,9 +92,8 @@ public class TajoWorkerManagerService extends CompositeService
     }
     // Get the master address
     LOG.info("TajoWorkerManagerService is bind to " + addr);
-    ((TajoConf)conf).setVar(TajoConf.ConfVars.TASKRUNNER_LISTENER_ADDRESS, addr);
-
-    super.init(conf);
+    tajoConf.setVar(TajoConf.ConfVars.WORKER_PEER_RPC_ADDRESS, NetUtils.normalizeInetSocketAddress(bindAddr));
+    super.init(tajoConf);
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
index d845f4f..e30f8c4 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/Task.java
@@ -23,10 +23,7 @@ import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.LocalDirAllocator;
-import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.*;
 import org.apache.hadoop.util.ReflectionUtils;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.util.ConverterUtils;
@@ -450,7 +447,7 @@ public class Task {
   private Fragment[] localizeFetchedData(File file, String name, TableMeta meta)
       throws IOException {
     Configuration c = new Configuration(systemConf);
-    c.set("fs.default.name", "file:///");
+    c.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, "file:///");
     FileSystem fs = FileSystem.get(c);
     Path tablePath = new Path(file.getAbsolutePath());
 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java
index 94c1d8f..a5bb55c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunner.java
@@ -18,7 +18,6 @@
 
 package org.apache.tajo.worker;
 
-import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
@@ -114,8 +113,8 @@ public class TaskRunner extends AbstractService {
     try {
       final ExecutionBlockId executionBlockId = TajoIdUtils.createExecutionBlockId(args[1]);
 
-      LOG.info("NM Local Dir: " + conf.get(ConfVars.TASK_LOCAL_DIR.varname));
       LOG.info("Tajo Root Dir: " + conf.getVar(ConfVars.ROOT_DIR));
+      LOG.info("Worker Local Dir: " + conf.getVar(ConfVars.WORKER_TEMPORAL_DIR));
 
       UserGroupInformation.setConfiguration(conf);
 
@@ -132,7 +131,7 @@ public class TaskRunner extends AbstractService {
       LOG.info("QueryMaster Address:" + masterAddr);
       // TODO - 'load credential' should be implemented
       // Getting taskOwner
-      UserGroupInformation taskOwner = UserGroupInformation.createRemoteUser(conf.getVar(ConfVars.TAJO_USERNAME));
+      UserGroupInformation taskOwner = UserGroupInformation.createRemoteUser(conf.getVar(ConfVars.USERNAME));
       //taskOwner.addToken(token);
 
       // initialize MasterWorkerProtocol as an actual task owner.
@@ -166,14 +165,14 @@ public class TaskRunner extends AbstractService {
 
     try {
       // initialize DFS and LocalFileSystems
-      defaultFS = TajoConf.getTajoRootPath(systemConf).getFileSystem(conf);
+      defaultFS = TajoConf.getTajoRootDir(systemConf).getFileSystem(conf);
       localFS = FileSystem.getLocal(conf);
 
       // the base dir for an output dir
       baseDir = queryId.toString() + "/output" + "/" + executionBlockId.getId();
 
       // initialize LocalDirAllocator
-      lDirAllocator = new LocalDirAllocator(ConfVars.TASK_LOCAL_DIR.varname);
+      lDirAllocator = new LocalDirAllocator(ConfVars.WORKER_TEMPORAL_DIR.varname);
 
       baseDirPath = localFS.makeQualified(lDirAllocator.getLocalPathForWrite(baseDir, conf));
       LOG.info("TaskRunner basedir is created (" + baseDir +")");

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunnerManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunnerManager.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunnerManager.java
index 0572aac..85b1e6b 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunnerManager.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/TaskRunnerManager.java
@@ -22,9 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.yarn.service.CompositeService;
-import org.apache.tajo.QueryId;
 import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.master.querymaster.QueryMasterTask;
 
 import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -137,11 +135,11 @@ public class TaskRunnerManager extends CompositeService {
 
   class FinishedTaskCleanThread extends Thread {
     public void run() {
-      int expireIntervalTime = tajoConf.getInt("tajo.worker.history.expire.interval.min", 12 * 60); //12 hour
-      LOG.info("FinishedQueryMasterTaskCleanThread started: expireIntervalTime=" + expireIntervalTime);
+      int expireIntervalTime = tajoConf.getIntVar(TajoConf.ConfVars.WORKER_HISTORY_EXPIRE_PERIOD);
+      LOG.info("FinishedQueryMasterTaskCleanThread started: expire interval minutes = " + expireIntervalTime);
       while(!stop.get()) {
         try {
-          Thread.sleep(60 * 1000 * 60);   //hourly
+          Thread.sleep(60 * 1000 * 60);   // hourly check
         } catch (InterruptedException e) {
           break;
         }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/YarnResourceAllocator.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/YarnResourceAllocator.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/YarnResourceAllocator.java
index 8fc3884..d694b7c 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/YarnResourceAllocator.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/worker/YarnResourceAllocator.java
@@ -68,7 +68,7 @@ public class YarnResourceAllocator extends AbstractResourceAllocator {
     int numClusterNodes = workerContext.getNumClusterNodes();
 
     TajoConf conf =  (TajoConf)workerContext.getQueryMaster().getConfig();
-    int workerNum = conf.getIntVar(TajoConf.ConfVars.MAX_WORKER_PER_NODE);
+    int workerNum = conf.getIntVar(TajoConf.ConfVars.YARN_RM_WORKER_NUMBER_PER_NODE);
     return numClusterNodes == 0 ? numTasks: Math.min(numTasks, numClusterNodes * workerNum);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/proto/ClientProtocol.proto
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/proto/ClientProtocol.proto b/tajo-core/tajo-core-backend/src/main/proto/ClientProtocol.proto
deleted file mode 100644
index 43d99ef..0000000
--- a/tajo-core/tajo-core-backend/src/main/proto/ClientProtocol.proto
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-option java_package = "org.apache.tajo.client";
-option java_outer_classname = "ClientProtocol";
-option java_generic_services = true;
-option java_generate_equals_and_hash = true;
-
-import "yarn_protos.proto";
-import "tajo_protos.proto";
-import "TajoIdProtos.proto";
-import "CatalogProtos.proto";
-import "PrimitiveProtos.proto";
-
-enum ResultCode {
-  OK = 0;
-  ERROR = 1;
-}
-
-message UpdateSessionVariableRequest {
-  optional SessionIdProto sessionId = 1;
-  repeated KeyValueProto setVariables = 2;
-  repeated string unsetVariables = 3;
-}
-
-message QueryRequest {
-  optional SessionIdProto sessionId = 1;
-  required string query = 2;
-  repeated KeyValueProto setVariables = 3;
-}
-
-message UpdateQueryResponse {
-  required ResultCode resultCode = 1;
-  optional string errorMessage = 2;
-}
-
-message SubmitQueryResponse {
-  required ResultCode resultCode = 1;
-  optional string queryId = 2;
-  optional string errorMessage = 3;
-}
-
-message GetQueryResultRequest {
-  optional SessionIdProto sessionId = 1;
-  required string queryId = 2;
-}
-
-message GetQueryResultResponse {
-  optional TableDescProto tableDesc = 1;
-  optional string errorMessage = 2;
-}
-
-message GetQueryListRequest {
-  optional SessionIdProto sessionId = 1;
-}
-
-message BriefQueryStatus {
-  required string queryId = 1;
-  required QueryState state = 2;
-  required int32 executionTime = 3;
-}
-
-message GetQueryListResponse {
-  repeated BriefQueryStatus queryList = 1;
-}
-
-message GetQueryStatusRequest {
-  optional SessionIdProto sessionId = 1;
-  required string queryId = 2;
-}
-
-message GetQueryStatusResponse {
-  required ResultCode resultCode = 1;
-  required string queryId = 2;
-  optional QueryState state = 3;
-  optional float progress = 4;
-  optional int64 submitTime = 5;
-  optional int64 initTime = 6;
-  optional int64 finishTime = 7;
-  optional bool hasResult = 8;
-  optional string errorMessage = 9;
-  optional string queryMasterHost = 10;
-  optional int32 queryMasterPort = 11;
-}
-
-message GetClusterInfoRequest {
-  optional SessionIdProto sessionId = 1;
-}
-
-message GetClusterInfoResponse {
-  repeated string serverName = 1;
-}
-
-message GetTableListRequest {
-  optional SessionIdProto sessionId = 1;
-}
-
-message GetTableListResponse {
-  repeated string tables = 1;
-}
-
-message GetTableDescRequest {
-  optional SessionIdProto sessionId = 1;
-  required string tableName = 2;
-}
-
-message CreateTableRequest {
-  required string name = 1;
-  required string path = 2;
-  required TableProto meta = 3;
-}
-
-message AttachTableRequest {
-  required string name = 1;
-  required string path = 2;
-}
-
-message TableResponse {
-  optional TableDescProto tableDesc = 1;
-  optional string errorMessage = 2;
-}
-
-service ClientProtocolService {
-  rpc updateSessionVariables(UpdateSessionVariableRequest) returns (BoolProto);
-  rpc submitQuery(QueryRequest) returns (SubmitQueryResponse);
-  rpc updateQuery(QueryRequest) returns (UpdateQueryResponse);
-  rpc getQueryResult(GetQueryResultRequest) returns (GetQueryResultResponse);
-  rpc getQueryList(GetQueryListRequest) returns (GetQueryListResponse);
-  rpc getQueryStatus(GetQueryStatusRequest) returns (GetQueryStatusResponse);
-  rpc killQuery(StringProto) returns (BoolProto);
-  rpc getClusterInfo(GetClusterInfoRequest) returns (GetClusterInfoResponse);
-  rpc existTable(StringProto) returns (BoolProto);
-  rpc getTableList(GetTableListRequest) returns (GetTableListResponse);
-  rpc getTableDesc(GetTableDescRequest) returns (TableResponse);
-  rpc createTable(CreateTableRequest) returns (TableResponse);
-  rpc dropTable(StringProto) returns (BoolProto);
-  rpc attachTable(AttachTableRequest) returns (TableResponse);
-  rpc detachTable(StringProto) returns (BoolProto);
-
-
-  // TODO - to be implemented
-  //
-  // authenticate
-  //
-  // getSessionVariableList
-  // dropTable
-  // detachTable
-  // createIndex
-  // dropIndex
-  // registerUDF
-  // dropUDF
-  // listUdfs
-  // getUDFDesc
-  // registerJars
-  // getListRegisteredJars
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/proto/ClientProtos.proto
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/proto/ClientProtos.proto b/tajo-core/tajo-core-backend/src/main/proto/ClientProtos.proto
index f3b1005..5a70f91 100644
--- a/tajo-core/tajo-core-backend/src/main/proto/ClientProtos.proto
+++ b/tajo-core/tajo-core-backend/src/main/proto/ClientProtos.proto
@@ -131,6 +131,7 @@ message AttachTableRequest {
 }
 
 message TableResponse {
-  optional TableDescProto tableDesc = 1;
-  optional string errorMessage = 2;
+  required ResultCode resultCode = 1;
+  optional TableDescProto tableDesc = 2;
+  optional string errorMessage = 3;
 }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/proto/TajoMasterClientProtocol.proto
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/proto/TajoMasterClientProtocol.proto b/tajo-core/tajo-core-backend/src/main/proto/TajoMasterClientProtocol.proto
index 26dbbed..17b237b 100644
--- a/tajo-core/tajo-core-backend/src/main/proto/TajoMasterClientProtocol.proto
+++ b/tajo-core/tajo-core-backend/src/main/proto/TajoMasterClientProtocol.proto
@@ -41,7 +41,7 @@ service TajoMasterClientProtocolService {
   rpc existTable(StringProto) returns (BoolProto);
   rpc getTableList(GetTableListRequest) returns (GetTableListResponse);
   rpc getTableDesc(GetTableDescRequest) returns (TableResponse);
-  rpc createTable(CreateTableRequest) returns (TableResponse);
+  rpc createExternalTable(CreateTableRequest) returns (TableResponse);
   rpc dropTable(StringProto) returns (BoolProto);
   rpc attachTable(AttachTableRequest) returns (TableResponse);
   rpc detachTable(StringProto) returns (BoolProto);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/resources/catalog-default.xml
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/catalog-default.xml b/tajo-core/tajo-core-backend/src/main/resources/catalog-default.xml
new file mode 100644
index 0000000..52f204a
--- /dev/null
+++ b/tajo-core/tajo-core-backend/src/main/resources/catalog-default.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<configuration>
+  <property>
+    <name>tajo.catalog.store.class</name>
+    <value>org.apache.tajo.catalog.store.DerbyStore</value>
+  </property>
+
+  <property>
+    <name>tajo.catalog.jdbc.uri</name>
+    <value>jdbc:derby:/tmp/tajo-catalog-${user.name}/db;create=true</value>
+  </property>
+</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/resources/tajo-default.xml
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/tajo-default.xml b/tajo-core/tajo-core-backend/src/main/resources/tajo-default.xml
index ac17805..ab24740 100644
--- a/tajo-core/tajo-core-backend/src/main/resources/tajo-default.xml
+++ b/tajo-core/tajo-core-backend/src/main/resources/tajo-default.xml
@@ -21,91 +21,7 @@
 
 <configuration>
   <property>
-    <name>tajo.cluster.distributed</name>
-    <value>false</value>
-  </property>
-
-  <property>
-    <name>tajo.rootdir</name>
-    <value>/tajo</value>
-    <description>A base for other temporary directories.</description>
-  </property>
-
-  <property>
-    <name>tajo.staging.root.dir</name>
-    <value>/tmp/tajo-${user.name}/staging</value>
-  </property>
-
-  <property>
-    <name>tajo.task.localdir</name>
-    <value>/tmp/tajo-localdir</value>
-  </property>
-
-  <property>
-    <name>tajo.master.manager.addr</name>
-    <value>127.0.0.1:9004</value>
-  </property>
-
-  <property>
-    <name>tajo.query.session.timeout</name>
-    <value>60000</value>
-    <description>ms</description>
-  </property>
-
-  <property>
-    <name>tajo.query.session.timeout</name>
-    <value>60000</value>
-    <description>ms</description>
-  </property>
-
-  <property>
-    <name>tajo.resource.manager</name>
-    <value>org.apache.tajo.master.rm.YarnTajoResourceManager</value>
-    <description>This can be org.apache.tajo.master.rm.TajoWorkerResourceManager or org.apache.tajo.master.rm.YarnTajoResourceManager</description>
-  </property>
-
-  <property>
-    <name>tajo.querymaster.memoryMB</name>
-    <value>512</value>
-    <description>the memory slot size for a QeuryMaster</description>
-  </property>
-
-  <property>
-    <name>tajo.worker.slots.use.os.info</name>
-    <value>true</value>
-    <description>If true, Tajo system obtains the physical resource information from OS.
-                 If false, the physical resource information is obtained from the below configs.</description>
-  </property>
-
-  <!-- Default Node's Physical information -->
-  <!-- The below configs are used if tajo.worker.slots.use.os.info is set to true. -->
-  <property>
-    <name>tajo.worker.slots.os.memory.ratio</name>
-    <value>0.8f</value>
-    <description>The ratio of allocatable memory to the total system memory</description>
-  </property>
-
-  <property>
-    <name>tajo.worker.slots.memoryMB</name>
-    <value>2048</value>
-    <description></description>
-  </property>
-
-  <property>
-    <name>tajo.worker.slots.disk</name>
-    <value>2</value>
-    <description>The number of disks on a worker</description>
-  </property>
-
-  <property>
-    <name>tajo.worker.slots.disk.concurrency</name>
-    <value>4</value>
-    <description>the maximum concurrency number per disk slot</description>
-  </property>
-
-  <property>
-    <name>tajo.worker.slots.cpu.core</name>
-    <value>4</value>
-    <description>The number of CPU cores on a worker</description>
+    <name>tajo.worker.tmpdir.locations</name>
+    <value>/tmp/tajo-${user.name}/tmpdir</value>
   </property>
 </configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/cluster.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/cluster.jsp b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/cluster.jsp
index 20dbc7c..8cf20ae 100644
--- a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/cluster.jsp
+++ b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/cluster.jsp
@@ -64,7 +64,7 @@
 %>
     <tr>
       <td width='30' align='right'><%=no++%></td>
-      <td><a href='<%=workerHttp%>'><%=worker.getAllocatedHost() + ":" + worker.getManagerPort()%></a></td>
+      <td><a href='<%=workerHttp%>'><%=worker.getAllocatedHost() + ":" + worker.getPeerRpcPort()%></a></td>
       <td width='100'><%=worker.portsToStr()%></td>
       <td width='100' align='right'><%=worker.getNumRunningTasks()%></td>
       <td width='100' align='right'><%=worker.getUsedSlots()%>/<%=worker.getSlots()%></td>
@@ -101,7 +101,7 @@
 %>
     <tr>
       <td width='30' align='right'><%=no++%></td>
-      <td><%=worker.getAllocatedHost() + ":" + worker.getManagerPort()%></td>
+      <td><%=worker.getAllocatedHost() + ":" + worker.getPeerRpcPort()%></td>
       <td><%=worker.portsToStr()%></td>
       <td><%=worker.getNumRunningTasks()%></td>
       <td><%=worker.getUsedSlots()%>/<%=worker.getSlots()%></td>

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/index.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/index.jsp b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/index.jsp
index f592c7d..684de7d 100644
--- a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/index.jsp
+++ b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/index.jsp
@@ -1,12 +1,16 @@
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 
-<%@ page import="java.util.*" %>
-<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
-<%@ page import="org.apache.tajo.master.*" %>
-<%@ page import="org.apache.tajo.master.rm.*" %>
-<%@ page import="org.apache.tajo.catalog.*" %>
+<%@ page import="org.apache.hadoop.fs.FileSystem" %>
+<%@ page import="org.apache.tajo.conf.TajoConf" %>
+<%@ page import="org.apache.tajo.master.TajoMaster" %>
 <%@ page import="org.apache.tajo.master.querymaster.QueryInProgress" %>
+<%@ page import="org.apache.tajo.master.rm.WorkerResource" %>
+<%@ page import="org.apache.tajo.master.rm.WorkerStatus" %>
 <%@ page import="org.apache.tajo.util.NetUtils" %>
+<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
+<%@ page import="java.util.Collection" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="java.util.Map" %>
 
 <%
   TajoMaster master = (TajoMaster) StaticHttpServer.getInstance().getAttribute("tajo.info.server.object");
@@ -79,26 +83,31 @@
   <hr/>
   <h3>Master Status</h3>
   <table border='0'>
-    <tr><td width="100">Version:</td><td><%=master.getVersion()%></td></tr>
-    <tr><td width="100">Started:</td><td><%=new Date(master.getStartTime())%></td></tr>
-    <tr><td width="100">Meta Store:</td><td><%=master.getCatalogServer().getCatalogServerName()%></td></tr>
-    <tr><td width="100">Client Service:</td><td><%=NetUtils.normalizeInetSocketAddress(master.getTajoMasterClientService().getBindAddress())%></td></tr>
-    <tr><td width='100'>MaxHeap: </td><td><%=Runtime.getRuntime().maxMemory()/1024/1024%> MB</td>
-    <tr><td width='100'>TotalHeap: </td><td><%=Runtime.getRuntime().totalMemory()/1024/1024%> MB</td>
-    <tr><td width='100'>FreeHeap: </td><td><%=Runtime.getRuntime().freeMemory()/1024/1024%> MB</td>
-    <tr><td width="100">Configuration:</td><td><a href='conf.jsp'>detail...</a></td></tr>
-    <tr><td width="100">Environment:</td><td><a href='env.jsp'>detail...</a></td></tr>
-    <tr><td width="100">Threads:</td><td><a href='thread.jsp'>thread dump...</a></tr>
+    <tr><td width='150'>Version:</td><td><%=master.getVersion()%></td></tr>
+    <tr><td width='150'>Started:</td><td><%=new Date(master.getStartTime())%></td></tr>
+    <tr><td width='150'>File System:</td><td><%=master.getContext().getConf().get(FileSystem.FS_DEFAULT_NAME_KEY)%></td></tr>
+    <tr><td width='150'>Root dir:</td><td><%=TajoConf.getTajoRootDir(master.getContext().getConf())%></td></tr>
+    <tr><td width='150'>System dir:</td><td><%=TajoConf.getSystemDir(master.getContext().getConf())%></td></tr>
+    <tr><td width='150'>Warehouse dir:</td><td><%=TajoConf.getWarehouseDir(master.getContext().getConf())%></td></tr>
+    <tr><td width='150'>Staging dir:</td><td><%=TajoConf.getStagingDir(master.getContext().getConf())%></td></tr>
+    <tr><td width='150'>Client Service:</td><td><%=NetUtils.normalizeInetSocketAddress(master.getTajoMasterClientService().getBindAddress())%></td></tr>
+    <tr><td width='150'>Catalog Service:</td><td><%=master.getCatalogServer().getCatalogServerName()%></td></tr>
+    <tr><td width='150'>MaxHeap: </td><td><%=Runtime.getRuntime().maxMemory()/1024/1024%> MB</td>
+    <tr><td width='150'>TotalHeap: </td><td><%=Runtime.getRuntime().totalMemory()/1024/1024%> MB</td>
+    <tr><td width='150'>FreeHeap: </td><td><%=Runtime.getRuntime().freeMemory()/1024/1024%> MB</td>
+    <tr><td width='150'>Configuration:</td><td><a href='conf.jsp'>detail...</a></td></tr>
+    <tr><td width='150'>Environment:</td><td><a href='env.jsp'>detail...</a></td></tr>
+    <tr><td width='150'>Threads:</td><td><a href='thread.jsp'>thread dump...</a></tr>
   </table>
   <hr/>
 
   <h3>Cluster Summary</h3>
   <table border='0' width="100%">
     <tr>
-      <td width="100"><a href='cluster.jsp'>Workers:</a></td><td>Total: <%=workers.size()%>&nbsp;&nbsp;&nbsp;&nbsp;Live: <%=numLiveWorkers%>&nbsp;&nbsp;&nbsp;&nbsp;Dead: <%=numDeadWorkers%></td>
+      <td width='150'><a href='cluster.jsp'>Workers:</a></td><td>Total: <%=workers.size()%>&nbsp;&nbsp;&nbsp;&nbsp;Live: <%=numLiveWorkers%>&nbsp;&nbsp;&nbsp;&nbsp;Dead: <%=numDeadWorkers%></td>
     </tr>
     <tr>
-      <td width="100">Task Slots</td><td>Total: <%=totalSlot%>&nbsp;&nbsp;&nbsp;&nbsp;Occupied:<%=runningSlot%>&nbsp;&nbsp;&nbsp;&nbsp;Idle: <%=idleSlot%></td>
+      <td width='150'>Task Slots</td><td>Total: <%=totalSlot%>&nbsp;&nbsp;&nbsp;&nbsp;Occupied:<%=runningSlot%>&nbsp;&nbsp;&nbsp;&nbsp;Idle: <%=idleSlot%></td>
     </tr>
   </table>
   <hr/>

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp
index 7a5fdee..241c371 100644
--- a/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp
+++ b/tajo-core/tajo-core-backend/src/main/resources/webapps/admin/query.jsp
@@ -1,14 +1,18 @@
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 
-<%@ page import="java.util.*" %>
-<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
-<%@ page import="org.apache.tajo.master.*" %>
-<%@ page import="org.apache.tajo.util.*" %>
+<%@ page import="org.apache.tajo.master.TajoMaster" %>
 <%@ page import="org.apache.tajo.master.querymaster.QueryInProgress" %>
+<%@ page import="org.apache.tajo.util.JSPUtil" %>
+<%@ page import="org.apache.tajo.util.StringUtils" %>
+<%@ page import="org.apache.tajo.webapp.StaticHttpServer" %>
 <%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="java.util.List" %>
+<%@ page import="static org.apache.tajo.conf.TajoConf.ConfVars.WORKER_INFO_ADDRESS" %>
+<%@ page import="org.apache.tajo.conf.TajoConf" %>
 
 <%
   TajoMaster master = (TajoMaster) StaticHttpServer.getInstance().getAttribute("tajo.info.server.object");
+  TajoConf conf = master.getContext().getConf();
 
   List<QueryInProgress> runningQueries =
           JSPUtil.sortQueryInProgress(master.getContext().getQueryJobManager().getRunningQueries(), true);
@@ -17,8 +21,7 @@
           JSPUtil.sortQueryInProgress(master.getContext().getQueryJobManager().getFinishedQueries(), true);
 
   SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-  int workerHttpPort = master.getConfig().getInt("tajo.worker.http.port", 28080);
-
+  int workerHttpPort = Integer.valueOf(conf.getVar(WORKER_INFO_ADDRESS).split(":")[1]);
 %>
 
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/BackendTestingUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/BackendTestingUtil.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/BackendTestingUtil.java
index d1efc1c..61a8958 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/BackendTestingUtil.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/BackendTestingUtil.java
@@ -21,6 +21,8 @@
  */
 package org.apache.tajo;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.tajo.catalog.CatalogUtil;
@@ -38,6 +40,7 @@ import java.io.IOException;
 public class BackendTestingUtil {
 	public final static Schema mockupSchema;
 	public final static TableMeta mockupMeta;
+  private static final Log LOG = LogFactory.getLog(BackendTestingUtil.class);
 
 	static {
     mockupSchema = new Schema();
@@ -46,23 +49,20 @@ public class BackendTestingUtil {
     mockupMeta = CatalogUtil.newTableMeta(mockupSchema, StoreType.CSV);
 	}
 
-  public static void writeTmpTable(TajoConf conf, Path path,
-                                   String tableName, boolean writeMeta)
+  public static void writeTmpTable(TajoConf conf, Path tablePath)
       throws IOException {
-    AbstractStorageManager sm = StorageManagerFactory.getStorageManager(conf, path);
+    AbstractStorageManager sm = StorageManagerFactory.getStorageManager(conf, tablePath);
     FileSystem fs = sm.getFileSystem();
+
     Appender appender;
 
-    Path tablePath = StorageUtil.concatPath(path, tableName, "table.csv");
-    if (fs.exists(tablePath.getParent())) {
-      fs.delete(tablePath.getParent(), true);
+    Path filePath = new Path(tablePath, "table.csv");
+    if (fs.exists(tablePath)) {
+      fs.delete(tablePath, true);
     }
-    fs.mkdirs(tablePath.getParent());
+    fs.mkdirs(tablePath);
 
-    if (writeMeta) {
-      FileUtil.writeProto(fs, new Path(tablePath.getParent(), ".meta"), mockupMeta.getProto());
-    }
-    appender = StorageManagerFactory.getStorageManager(conf).getAppender(mockupMeta, tablePath);
+    appender = sm.getAppender(mockupMeta, filePath);
     appender.init();
 
     int deptSize = 10000;
@@ -77,12 +77,4 @@ public class BackendTestingUtil {
     }
     appender.close();
   }
-
-	public static void writeTmpTable(TajoConf conf, String parent,
-	    String tableName, boolean writeMeta) throws IOException {
-    writeTmpTable(conf, new Path(parent), tableName, writeMeta);
-	}
-
-  public BackendTestingUtil(TajoConf conf) throws IOException {
-  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
index 40fc45f..178e8b3 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
@@ -73,8 +73,7 @@ public class LocalTajoTestingUtility {
     client = new TajoClient(conf);
 
     FileSystem fs = util.getDefaultFileSystem();
-    Path rootDir = util.getMaster().
-        getStorageManager().getBaseDir();
+    Path rootDir = util.getMaster().getStorageManager().getWarehouseDir();
     fs.mkdirs(rootDir);
     for (int i = 0; i < tablepaths.length; i++) {
       Path localPath = new Path(tablepaths[i]);
@@ -84,7 +83,7 @@ public class LocalTajoTestingUtility {
       fs.copyFromLocalFile(localPath, dfsPath);
       TableMeta meta = CatalogUtil.newTableMeta(schemas[i],
           CatalogProtos.StoreType.CSV, option);
-      client.createTable(names[i], tablePath, meta);
+      client.createExternalTable(names[i], tablePath, meta);
     }
 
     LOG.info("===================================================");

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/MiniTajoYarnCluster.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/MiniTajoYarnCluster.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/MiniTajoYarnCluster.java
index 3a70ac5..be0169d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/MiniTajoYarnCluster.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/MiniTajoYarnCluster.java
@@ -39,7 +39,6 @@ import org.apache.hadoop.yarn.service.AbstractService;
 import org.apache.hadoop.yarn.service.Service;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.pullserver.PullServerAuxService;
-import org.apache.tajo.util.NetUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -108,7 +107,7 @@ public class MiniTajoYarnCluster extends MiniYARNCluster {
     conf.setInt(TajoConf.ConfVars.PULLSERVER_PORT.name(), 0);
 
     // local directory
-    conf.set(TajoConf.ConfVars.TASK_LOCAL_DIR.name(), "/tmp/tajo-localdir");
+    conf.set(TajoConf.ConfVars.WORKER_TEMPORAL_DIR.name(), "/tmp/tajo-localdir");
 
     conf.setClass(YarnConfiguration.NM_CONTAINER_EXECUTOR,
         DefaultContainerExecutor.class, ContainerExecutor.class);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java
index 7f0e407..ffbd3c2 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/TajoTestingCluster.java
@@ -24,10 +24,8 @@ import com.google.common.io.Closeables;
 import com.google.common.io.Files;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.fs.FSDataOutputStream;
+import org.apache.hadoop.fs.*;
 import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.LocalFileSystem;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.hadoop.hdfs.HdfsConfiguration;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -35,6 +33,7 @@ import org.apache.hadoop.util.ShutdownHookManager;
 import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.tajo.catalog.*;
+import org.apache.tajo.catalog.Options;
 import org.apache.tajo.catalog.proto.CatalogProtos;
 import org.apache.tajo.client.TajoClient;
 import org.apache.tajo.conf.TajoConf;
@@ -88,18 +87,17 @@ public class TajoTestingCluster {
 
   void initPropertiesAndConfigs() {
     if (System.getProperty(ConfVars.RESOURCE_MANAGER_CLASS.varname) != null) {
-      String testResourceManager = System.getProperty("tajo.resource.manager");
+      String testResourceManager = System.getProperty(ConfVars.RESOURCE_MANAGER_CLASS.varname);
       Preconditions.checkState(
           testResourceManager.equals(TajoWorkerResourceManager.class.getCanonicalName()) ||
               testResourceManager.equals(YarnTajoResourceManager.class.getCanonicalName()),
-          "tajo.resource.manager must be either " + TajoWorkerResourceManager.class.getCanonicalName() + " or " +
+          ConfVars.RESOURCE_MANAGER_CLASS.varname + " must be either " + TajoWorkerResourceManager.class.getCanonicalName() + " or " +
               YarnTajoResourceManager.class.getCanonicalName() +"."
       );
       conf.set(ConfVars.RESOURCE_MANAGER_CLASS.varname, System.getProperty(ConfVars.RESOURCE_MANAGER_CLASS.varname));
     }
-    this.standbyWorkerMode =
-        conf.get(ConfVars.RESOURCE_MANAGER_CLASS.varname, TajoWorkerResourceManager.class.getCanonicalName())
-            .indexOf(TajoWorkerResourceManager.class.getName()) >= 0;
+    this.standbyWorkerMode = conf.getVar(ConfVars.RESOURCE_MANAGER_CLASS)
+        .indexOf(TajoWorkerResourceManager.class.getName()) >= 0;
     conf.set(CommonTestingUtil.TAJO_TEST, "TRUE");
   }
 
@@ -194,11 +192,8 @@ public class TajoTestingCluster {
 
     // Set this just-started cluser as our filesystem.
     this.defaultFS = this.dfsCluster.getFileSystem();
-    this.conf.set("fs.defaultFS", defaultFS.getUri().toString());
-    // Do old style too just to be safe.
-    this.conf.set("fs.default.name", defaultFS.getUri().toString());
-
-    this.conf.set(TajoConf.ConfVars.ROOT_DIR.name(), defaultFS.getUri() + "/tajo");
+    this.conf.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, defaultFS.getUri().toString());
+    this.conf.setVar(TajoConf.ConfVars.ROOT_DIR, defaultFS.getUri() + "/tajo");
 
     return this.dfsCluster;
   }
@@ -266,14 +261,13 @@ public class TajoTestingCluster {
                                                final int numSlaves,
                                                boolean local) throws Exception {
     TajoConf c = getConfiguration();
-    c.setVar(ConfVars.TASKRUNNER_LISTENER_ADDRESS, "localhost:0");
-    c.setVar(ConfVars.CLIENT_SERVICE_ADDRESS, "localhost:0");
-    c.setVar(ConfVars.TAJO_MASTER_SERVICE_ADDRESS, "localhost:0");
-
+    c.setVar(ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS, "localhost:0");
+    c.setVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS, "localhost:0");
+    c.setVar(ConfVars.WORKER_PEER_RPC_ADDRESS, "localhost:0");
     c.setVar(ConfVars.CATALOG_ADDRESS, "localhost:0");
     c.set(CatalogConstants.STORE_CLASS, "org.apache.tajo.catalog.store.MemStore");
     c.set(CatalogConstants.JDBC_URI, "jdbc:derby:" + testBuildDir.getAbsolutePath() + "/db");
-    c.setVar(ConfVars.TASK_LOCAL_DIR, "file://" + testBuildDir.getAbsolutePath() + "/tajo-localdir");
+    c.setVar(ConfVars.WORKER_TEMPORAL_DIR, "file://" + testBuildDir.getAbsolutePath() + "/tajo-localdir");
 
     LOG.info("derby repository is set to "+conf.get(CatalogConstants.JDBC_URI));
 
@@ -289,12 +283,12 @@ public class TajoTestingCluster {
     tajoMaster.init(c);
     tajoMaster.start();
 
-    this.conf.setVar(ConfVars.TASKRUNNER_LISTENER_ADDRESS, c.getVar(ConfVars.TASKRUNNER_LISTENER_ADDRESS));
-    this.conf.setVar(ConfVars.CLIENT_SERVICE_ADDRESS, c.getVar(ConfVars.CLIENT_SERVICE_ADDRESS));
+    this.conf.setVar(ConfVars.WORKER_PEER_RPC_ADDRESS, c.getVar(ConfVars.WORKER_PEER_RPC_ADDRESS));
+    this.conf.setVar(ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS, c.getVar(ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS));
 
     InetSocketAddress tajoMasterAddress = tajoMaster.getContext().getTajoMasterService().getBindAddress();
 
-    this.conf.setVar(ConfVars.TAJO_MASTER_SERVICE_ADDRESS,
+    this.conf.setVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS,
         tajoMasterAddress.getHostName() + ":" + tajoMasterAddress.getPort());
 
     this.conf.setVar(ConfVars.CATALOG_ADDRESS, c.getVar(ConfVars.CATALOG_ADDRESS));
@@ -311,10 +305,9 @@ public class TajoTestingCluster {
 
       TajoConf workerConf  = new TajoConf(this.conf);
 
-      workerConf.setInt("tajo.worker.info.port", 0);
-      workerConf.setInt("tajo.worker.client.rpc.port", 0);
-      workerConf.setInt("tajo.worker.manager.rpc.port", 0);
-      workerConf.setInt(TajoConf.ConfVars.PULLSERVER_PORT.varname, 0);
+      workerConf.setVar(ConfVars.WORKER_INFO_ADDRESS, "localhost:0");
+      workerConf.setVar(ConfVars.WORKER_CLIENT_RPC_ADDRESS, "localhost:0");
+      workerConf.setVar(ConfVars.WORKER_PEER_RPC_ADDRESS, "localhost:0");
 
       tajoWorker.startWorker(workerConf, new String[]{"standby"});
 
@@ -524,7 +517,7 @@ public class TajoTestingCluster {
       writeLines(tableFile, tables[i]);
       TableMeta meta = CatalogUtil
           .newTableMeta(schemas[i], CatalogProtos.StoreType.CSV, option);
-      client.createTable(tableNames[i], new Path(tableDir.getAbsolutePath()), meta);
+      client.createExternalTable(tableNames[i], new Path(tableDir.getAbsolutePath()), meta);
     }
     Thread.sleep(1000);
     ResultSet res = client.executeQueryAndGetResult(query);
@@ -550,7 +543,7 @@ public class TajoTestingCluster {
 
     FileSystem fs = util.getDefaultFileSystem();
     Path rootDir = util.getMaster().
-        getStorageManager().getBaseDir();
+        getStorageManager().getWarehouseDir();
     fs.mkdirs(rootDir);
     for (int i = 0; i < names.length; i++) {
       Path tablePath = new Path(rootDir, names[i]);
@@ -563,7 +556,7 @@ public class TajoTestingCluster {
       out.close();
       TableMeta meta = CatalogUtil.newTableMeta(schemas[i],
           CatalogProtos.StoreType.CSV, option);
-      client.createTable(names[i], tablePath, meta);
+      client.createExternalTable(names[i], tablePath, meta);
     }
     Thread.sleep(1000);
     ResultSet res = client.executeQueryAndGetResult(query);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java
index 530cc20..09d8ceb 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/client/TestTajoClient.java
@@ -20,6 +20,8 @@ package org.apache.tajo.client;
 
 import com.google.common.collect.Sets;
 import com.google.protobuf.ServiceException;
+import com.sun.org.apache.commons.logging.Log;
+import com.sun.org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.tajo.BackendTestingUtil;
@@ -30,12 +32,12 @@ import org.apache.tajo.catalog.TableDesc;
 import org.apache.tajo.conf.TajoConf;
 import org.apache.tajo.storage.StorageUtil;
 import org.apache.tajo.util.CommonTestingUtil;
-import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import java.io.IOException;
+import java.sql.SQLException;
 import java.util.Set;
 
 import static org.junit.Assert.*;
@@ -44,61 +46,54 @@ import static org.junit.Assert.*;
 public class TestTajoClient {
   private static TajoTestingCluster cluster;
   private static TajoConf conf;
-  private static TajoClient tajo;
-  private static String TEST_PATH = "target/test-data/"
-      + TestTajoClient.class.getName();
+  private static TajoClient client;
   private static Path testDir;
 
   @BeforeClass
   public static void setUp() throws Exception {
     cluster = TpchTestBase.getInstance().getTestingCluster();
     conf = cluster.getConfiguration();
-    tajo = new TajoClient(conf);
-    testDir = CommonTestingUtil.getTestDir(TEST_PATH);
+    client = new TajoClient(conf);
+    testDir = CommonTestingUtil.getTestDir();
   }
 
   private static Path writeTmpTable(String tableName) throws IOException {
     Path tablePath = StorageUtil.concatPath(testDir, tableName);
-    BackendTestingUtil.writeTmpTable(conf, testDir, tableName, true);
+    BackendTestingUtil.writeTmpTable(conf, tablePath);
     return tablePath;
   }
 
   @Test
-  public final void testAttachTable() throws IOException, ServiceException {
-    final String tableName = "attach";
-    Path tablePath = writeTmpTable(tableName);
-    assertFalse(tajo.existTable(tableName));
-    tajo.attachTable(tableName, tablePath);
-    assertTrue(tajo.existTable(tableName));
-    tajo.detachTable(tableName);
-    assertFalse(tajo.existTable(tableName));
-  }
-
-  @Test
   public final void testUpdateQuery() throws IOException, ServiceException {
     final String tableName = "testUpdateQuery";
     Path tablePath = writeTmpTable(tableName);
 
-    assertFalse(tajo.existTable(tableName));
+    assertFalse(client.existTable(tableName));
     String sql =
         "create external table " + tableName + " (deptname text, score integer) "
             + "using csv location '" + tablePath + "'";
-    tajo.updateQuery(sql);
-    assertTrue(tajo.existTable(tableName));
+    client.updateQuery(sql);
+    assertTrue(client.existTable(tableName));
+    client.detachTable(tableName);
+    assertFalse(client.existTable(tableName));
   }
 
   @Test
   public final void testCreateAndDropTable()
-      throws IOException, ServiceException {
+      throws IOException, ServiceException, SQLException {
     final String tableName = "testCreateAndDropTable";
     Path tablePath = writeTmpTable(tableName);
-
-    assertFalse(tajo.existTable(tableName));
-    tajo.createTable(tableName, tablePath, BackendTestingUtil.mockupMeta);
-    assertTrue(tajo.existTable(tableName));
-    tajo.dropTable(tableName);
-    assertFalse(tajo.existTable(tableName));
+    LOG.error("Full path:" + tablePath.toUri().getRawPath());
     FileSystem fs = tablePath.getFileSystem(conf);
+    assertTrue(fs.exists(tablePath));
+
+    assertFalse(client.existTable(tableName));
+
+    client.createExternalTable(tableName, tablePath, BackendTestingUtil.mockupMeta);
+    assertTrue(client.existTable(tableName));
+    client.dropTable(tableName);
+    assertFalse(client.existTable(tableName));
+    fs = tablePath.getFileSystem(conf);
     assertFalse(fs.exists(tablePath));
   }
 
@@ -107,40 +102,39 @@ public class TestTajoClient {
     TajoConf conf = cluster.getConfiguration();
     final String tableName = "testCreateAndDropExternalTableByExecuteQuery";
 
-    BackendTestingUtil.writeTmpTable(conf, CommonTestingUtil.getTestDir(), tableName, false);
     Path tablePath = writeTmpTable(tableName);
-    assertFalse(tajo.existTable(tableName));
+    assertFalse(client.existTable(tableName));
 
     String sql = "create external table " + tableName + " (deptname text, score int4) " + "using csv location '"
         + tablePath + "'";
 
-    tajo.executeQueryAndGetResult(sql);
-    assertTrue(tajo.existTable(tableName));
+    client.executeQueryAndGetResult(sql);
+    assertTrue(client.existTable(tableName));
 
-    tajo.updateQuery("drop table " + tableName);
-    assertFalse(tajo.existTable(tableName));
+    client.updateQuery("drop table " + tableName);
+    assertFalse(client.existTable(tableName));
     FileSystem localFS = FileSystem.getLocal(conf);
     assertFalse(localFS.exists(tablePath));
   }
 
   @Test
-  public final void testCreateAndDropTableByExecuteQuery() throws IOException, ServiceException {
+  public final void testCreateAndDropTableByExecuteQuery() throws IOException, ServiceException, SQLException {
     TajoConf conf = cluster.getConfiguration();
     final String tableName = "testCreateAndDropTableByExecuteQuery";
 
-    assertFalse(tajo.existTable(tableName));
+    assertFalse(client.existTable(tableName));
 
     String sql = "create table " + tableName + " (deptname text, score int4)";
 
-    tajo.updateQuery(sql);
-    assertTrue(tajo.existTable(tableName));
+    client.updateQuery(sql);
+    assertTrue(client.existTable(tableName));
 
-    Path tablePath = tajo.getTableDesc(tableName).getPath();
+    Path tablePath = client.getTableDesc(tableName).getPath();
     FileSystem hdfs = tablePath.getFileSystem(conf);
     assertTrue(hdfs.exists(tablePath));
 
-    tajo.updateQuery("drop table " + tableName);
-    assertFalse(tajo.existTable(tableName));
+    client.updateQuery("drop table " + tableName);
+    assertFalse(client.existTable(tableName));
     assertFalse(hdfs.exists(tablePath));
   }
 
@@ -148,44 +142,51 @@ public class TestTajoClient {
   public final void testDDLByExecuteQuery() throws IOException, ServiceException {
     TajoConf conf = cluster.getConfiguration();
     final String tableName = "testDDLByExecuteQuery";
-    BackendTestingUtil.writeTmpTable(conf, CommonTestingUtil.getTestDir(), tableName, false);
+    BackendTestingUtil.writeTmpTable(conf, CommonTestingUtil.getTestDir());
 
-    assertFalse(tajo.existTable(tableName));
+    assertFalse(client.existTable(tableName));
     String sql =
         "create external table " + tableName + " (deptname text, score int4) "
             + "using csv location 'file:///tmp/" + tableName + "'";
-    tajo.executeQueryAndGetResult(sql);
-    assertTrue(tajo.existTable(tableName));
+    client.executeQueryAndGetResult(sql);
+    assertTrue(client.existTable(tableName));
   }
 
   @Test
   public final void testGetTableList() throws IOException, ServiceException {
-    final String tableName1 = "table1";
-    final String tableName2 = "table2";
-    Path table1Path = writeTmpTable(tableName1);
-    Path table2Path = writeTmpTable(tableName2);
-
-    assertFalse(tajo.existTable(tableName1));
-    assertFalse(tajo.existTable(tableName2));
-    tajo.attachTable(tableName1, table1Path);
-    assertTrue(tajo.existTable(tableName1));
-    Set<String> tables = Sets.newHashSet(tajo.getTableList());
-    assertTrue(tables.contains(tableName1));
-    tajo.attachTable(tableName2, table2Path);
-    assertTrue(tajo.existTable(tableName2));
-    tables = Sets.newHashSet(tajo.getTableList());
+    String tableName1 = "GetTableList1".toLowerCase();
+    String tableName2 = "GetTableList2".toLowerCase();
+
+    assertFalse(client.existTable(tableName1));
+    assertFalse(client.existTable(tableName2));
+    client.updateQuery("create table GetTableList1 (age int, name text);");
+    client.updateQuery("create table GetTableList2 (age int, name text);");
+
+    assertTrue(client.existTable(tableName1));
+    assertTrue(client.existTable(tableName2));
+
+    Set<String> tables = Sets.newHashSet(client.getTableList());
     assertTrue(tables.contains(tableName1));
     assertTrue(tables.contains(tableName2));
   }
 
+  Log LOG = LogFactory.getLog(TestTajoClient.class);
+
   @Test
-  public final void testGetTableDesc() throws IOException, ServiceException {
+  public final void testGetTableDesc() throws IOException, ServiceException, SQLException {
     final String tableName1 = "table3";
     Path tablePath = writeTmpTable(tableName1);
-    assertFalse(tajo.existTable(tableName1));
-    tajo.attachTable(tableName1, tablePath);
-    assertTrue(tajo.existTable(tableName1));
-    TableDesc desc = tajo.getTableDesc(tableName1);
+    LOG.error("Full path:" + tablePath.toUri().getRawPath());
+    FileSystem fs = tablePath.getFileSystem(conf);
+    assertTrue(fs.exists(tablePath));
+
+    assertNotNull(tablePath);
+    assertFalse(client.existTable(tableName1));
+
+    client.createExternalTable("table3", tablePath, BackendTestingUtil.mockupMeta);
+    assertTrue(client.existTable(tableName1));
+
+    TableDesc desc = client.getTableDesc(tableName1);
     assertNotNull(desc);
     assertEquals(tableName1, desc.getName());
     assertTrue(desc.getMeta().getStat().getNumBytes() > 0);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/storage/TestRowFile.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/storage/TestRowFile.java b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/storage/TestRowFile.java
index d5077c2..147fe1d 100644
--- a/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/storage/TestRowFile.java
+++ b/tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/storage/TestRowFile.java
@@ -70,8 +70,7 @@ public class TestRowFile {
 
     TableMeta meta = CatalogUtil.newTableMeta(schema, StoreType.ROWFILE);
 
-    AbstractStorageManager sm = StorageManagerFactory.getStorageManager(conf,
-        new Path(conf.get(TajoConf.ConfVars.ROOT_DIR.name())));
+    AbstractStorageManager sm = StorageManagerFactory.getStorageManager(conf, new Path(conf.getVar(ConfVars.ROOT_DIR)));
 
     Path tablePath = new Path("/test");
     Path metaPath = new Path(tablePath, ".meta");

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/resources/catalog-default.xml
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/resources/catalog-default.xml b/tajo-core/tajo-core-backend/src/test/resources/catalog-default.xml
deleted file mode 100644
index 05083a4..0000000
--- a/tajo-core/tajo-core-backend/src/test/resources/catalog-default.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<configuration>
-  <property>
-    <name>tajo.catalog.master.addr</name>
-    <value>127.0.0.1:9002</value>
-  </property>
-
-  <property>
-    <name>catalog.store.class</name>
-    <value>org.apache.tajo.catalog.store.MemStore</value>
-  </property>
-
-  <property>
-    <name>catalog.jdbc.uri</name>
-    <value>jdbc:derby:target/test-data/tcat/db</value>
-  </property>
-</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-backend/src/test/resources/tajo-default.xml
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/resources/tajo-default.xml b/tajo-core/tajo-core-backend/src/test/resources/tajo-default.xml
deleted file mode 100644
index 20573d3..0000000
--- a/tajo-core/tajo-core-backend/src/test/resources/tajo-default.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<configuration>
-  <property>
-    <name>tajo.cluster.distributed</name>
-    <value>false</value>
-  </property>
-
-  <property>
-    <name>tajo.rootdir</name>
-    <value>/tajo</value>
-    <description>A base for other temporary directories.</description>
-  </property>
-
-  <property>
-    <name>tajo.staging.root.dir</name>
-    <value>/tmp/tajo-${user.name}/staging</value>
-  </property>
-
-  <property>
-    <name>tajo.resource.manager</name>
-    <value>org.apache.tajo.master.rm.TajoWorkerResourceManager</value>
-  </property>
-</configuration>

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java b/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
index 93cf4e5..9574fc8 100644
--- a/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
+++ b/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
@@ -324,18 +324,13 @@ public class PullServerAuxService extends AbstractService
   }
 
   class PullServer extends SimpleChannelUpstreamHandler {
-
     private final Configuration conf;
-//    private final IndexCache indexCache;
-    private final LocalDirAllocator lDirAlloc =
-      new LocalDirAllocator(ConfVars.TASK_LOCAL_DIR.varname);
+    private final LocalDirAllocator lDirAlloc = new LocalDirAllocator(ConfVars.WORKER_TEMPORAL_DIR.varname);
     private int port;
 
     public PullServer(Configuration conf) {
       this.conf = conf;
-//      indexCache = new IndexCache(new JobConf(conf));
-      this.port = conf.getInt(ConfVars.PULLSERVER_PORT.varname,
-          ConfVars.PULLSERVER_PORT.defaultIntVal);
+      this.port = conf.getInt(ConfVars.PULLSERVER_PORT.varname, ConfVars.PULLSERVER_PORT.defaultIntVal);
     }
     
     public void setPort(int port) {
@@ -397,7 +392,7 @@ public class PullServerAuxService extends AbstractService
       LOG.info("PullServer request param: repartitionType=" + repartitionType +
           ", sid=" + sid + ", partitionId=" + partitionId + ", taskIds=" + taskIdList);
 
-      String taskLocalDir = conf.get(ConfVars.TASK_LOCAL_DIR.varname);
+      String taskLocalDir = conf.get(ConfVars.WORKER_TEMPORAL_DIR.varname);
       if (taskLocalDir == null ||
           taskLocalDir.equals("")) {
         LOG.error("Tajo local directory should be specified.");

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java b/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
index 3df3672..256f99c 100644
--- a/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
+++ b/tajo-core/tajo-core-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
@@ -319,7 +319,7 @@ public class TajoPullServerService extends AbstractService {
     private final Configuration conf;
 //    private final IndexCache indexCache;
     private final LocalDirAllocator lDirAlloc =
-      new LocalDirAllocator(ConfVars.TASK_LOCAL_DIR.varname);
+      new LocalDirAllocator(ConfVars.WORKER_TEMPORAL_DIR.varname);
     private int port;
 
     public PullServer(Configuration conf) {
@@ -390,7 +390,7 @@ public class TajoPullServerService extends AbstractService {
       // the working dir of tajo worker for each query
       String queryBaseDir = queryId.toString() + "/output";
 
-      LOG.info("PullServer baseDir: " + conf.get(ConfVars.TASK_LOCAL_DIR.varname) + "/" + queryBaseDir);
+      LOG.info("PullServer baseDir: " + conf.get(ConfVars.WORKER_TEMPORAL_DIR.varname) + "/" + queryBaseDir);
 
       // if a subquery requires a range partitioning
       if (repartitionType.equals("r")) {

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/d5128328/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/AbstractStorageManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/AbstractStorageManager.java b/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/AbstractStorageManager.java
index f8cf94d..ef02d2b 100644
--- a/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/AbstractStorageManager.java
+++ b/tajo-core/tajo-core-storage/src/main/java/org/apache/tajo/storage/AbstractStorageManager.java
@@ -45,7 +45,6 @@ public abstract class AbstractStorageManager {
 
   protected final TajoConf conf;
   protected final FileSystem fs;
-  protected final Path baseDir;
   protected final Path tableBaseDir;
   protected final boolean blocksMetadataEnabled;
 
@@ -73,9 +72,8 @@ public abstract class AbstractStorageManager {
 
   protected AbstractStorageManager(TajoConf conf) throws IOException {
     this.conf = conf;
-    this.baseDir = new Path(conf.getVar(TajoConf.ConfVars.ROOT_DIR));
-    this.tableBaseDir = TajoConf.getWarehousePath(conf);
-    this.fs = baseDir.getFileSystem(conf);
+    this.tableBaseDir = TajoConf.getWarehouseDir(conf);
+    this.fs = tableBaseDir.getFileSystem(conf);
     this.blocksMetadataEnabled = conf.getBoolean(DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED,
         DFSConfigKeys.DFS_HDFS_BLOCKS_METADATA_ENABLED_DEFAULT);
     if (!this.blocksMetadataEnabled)
@@ -99,11 +97,7 @@ public abstract class AbstractStorageManager {
     return this.fs;
   }
 
-  public Path getBaseDir() {
-    return this.baseDir;
-  }
-
-  public Path getTableBaseDir() {
+  public Path getWarehouseDir() {
     return this.tableBaseDir;
   }
 


Mime
View raw message