Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.11.0
    • Component/s: Storage
    • Labels:
      None

      Description

      TablespaceManager should load Tablespace according to storage-default.json and storage-site.json.

        Issue Links

          Activity

          Hide
          hyunsik Hyunsik Choi added a comment - - edited
          Show
          hyunsik Hyunsik Choi added a comment - - edited I've added tablespaces documentation. http://people.apache.org/~hyunsik/TAJO-1616/table_management/tablespaces.html
          Hide
          hyunsik Hyunsik Choi added a comment -

          I've added storage plugin documentation.

          http://people.apache.org/~hyunsik/TAJO-1616/storage_plugin.html

          Show
          hyunsik Hyunsik Choi added a comment - I've added storage plugin documentation. http://people.apache.org/~hyunsik/TAJO-1616/storage_plugin.html
          Hide
          githubbot ASF GitHub Bot added a comment -

          GitHub user hyunsik opened a pull request:

          https://github.com/apache/tajo/pull/602

          TAJO-1616: Implement TablespaceManager to load Tablespaces.

          You can merge this pull request into a Git repository by running:

          $ git pull https://github.com/hyunsik/tajo TableSpace

          Alternatively you can review and apply these changes as the patch at:

          https://github.com/apache/tajo/pull/602.patch

          To close this pull request, make a commit to your master/trunk branch
          with (at least) the following in the commit message:

          This closes #602


          commit 528eb26d3279fd10fda8d8c2792ca151b8984162
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-05-27T10:38:44Z

          Initial change.

          commit 85a7768d306aee7779b5d47f7425b62a9f4b477d
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-05-29T11:18:54Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo

          Conflicts:
          tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpace.java

          commit 5ad56deec0e6bae264226642180573ed7ec079e9
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-05-29T11:19:12Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo

          commit 13c98e15318ad6feb056e72b5cf6d23ee8d73de2
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-05-29T13:01:16Z

          change hbase configuration.

          commit 7090fad5f1a96f7740ff5ede9b497d03bc891908
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-01T21:53:11Z

          Improved TableSpaceManager to load json configuration.

          • Add loading methods for tablespace and spacehandler
          • Change the signature of getStorageManager
          • Change the signature of TableSpace

          commit 7e115794481b08d53c7370a9419031b4a70566fe
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-02T07:06:09Z

          Changed OldStorageManager to TableSpaceManager.

          commit ac92b14d6bc810cb965955a5922db3f8342781d6
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-04T10:31:30Z

          Fixed many bugs.

          commit 70786ff483259563c282e1b5952c14cbf4925384
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-04T12:39:10Z

          Fixed really lots of bugs.

          commit 3b1b95b089668f79c1b35268cd1489fc2438efb8
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-05T11:39:51Z

          Move Table Schema and Uri from CreateTableNode and InsertNode to StoreTableNode.

          commit f89d634b6cd3a242becffcde574f773132f11bca
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-05T13:55:39Z

          Fixed some serialization bugs.

          commit 35ee74b9fac158f721928a9cf5d0c67cec8ce28b
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-06T06:59:43Z

          Fixed many bugs.

          commit f2726c264880ba2433c8ec287cb892c4bbba2889
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-07T04:42:01Z

          Removed replacement of default fs.

          commit 7b7e85f526843d7afbfd55585d55a8ae1498abcc
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-12T12:58:38Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace

          commit 2414a4d55b964c78df909aa239675400aa463667
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-12T16:57:37Z

          Improved loading code.

          commit 8329ea37e58a0b80e664c26081b733c0ed44f731
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-12T23:15:25Z

          New initialization

          commit 4eab5eb671cf70b9d15e59144548dee3063018ed
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-14T03:27:55Z

          Add StroageService.

          commit f7fd98e51013d6d5d7e70095d8a8089f31cb7da5
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-14T11:43:23Z

          Renamed Path suffix of TableDesc to URI.

          commit 443aab6ab885fbb6337a6b9d831f5f049e0e1b6a
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-14T21:35:46Z

          Simplified TablespaceManager.get().

          commit 6c4e3ee2c4f96ecc7cb1b25e05d87b1974af5842
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-15T02:34:37Z

          Improved rewrite rule for storage specified plan.

          commit 57fd37e19754783843e2aedbe2ef01c8c015335f
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-15T03:26:50Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace

          commit 88c5a1ec5652839cca7b367f82441b92610b84cf
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-15T04:55:37Z

          Add comments, remove unused codes, and refine some APIs.

          commit 125608a22645acdf500bb1f99e59ea3c04eed4f9
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-16T01:03:40Z

          Add documentation and improved catalog schema.

          commit 5a433703f9e7869a3f766d494feeebc4e3681798
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-16T02:03:35Z

          Fixed test failures.

          commit 5c5f0bdc82b8396ba99ddbbb61284273af55bd48
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-06-16T02:03:58Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace


          Show
          githubbot ASF GitHub Bot added a comment - GitHub user hyunsik opened a pull request: https://github.com/apache/tajo/pull/602 TAJO-1616 : Implement TablespaceManager to load Tablespaces. You can merge this pull request into a Git repository by running: $ git pull https://github.com/hyunsik/tajo TableSpace Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tajo/pull/602.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #602 commit 528eb26d3279fd10fda8d8c2792ca151b8984162 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-05-27T10:38:44Z Initial change. commit 85a7768d306aee7779b5d47f7425b62a9f4b477d Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-05-29T11:18:54Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo Conflicts: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpace.java commit 5ad56deec0e6bae264226642180573ed7ec079e9 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-05-29T11:19:12Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo commit 13c98e15318ad6feb056e72b5cf6d23ee8d73de2 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-05-29T13:01:16Z change hbase configuration. commit 7090fad5f1a96f7740ff5ede9b497d03bc891908 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-01T21:53:11Z Improved TableSpaceManager to load json configuration. Add loading methods for tablespace and spacehandler Change the signature of getStorageManager Change the signature of TableSpace commit 7e115794481b08d53c7370a9419031b4a70566fe Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-02T07:06:09Z Changed OldStorageManager to TableSpaceManager. commit ac92b14d6bc810cb965955a5922db3f8342781d6 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-04T10:31:30Z Fixed many bugs. commit 70786ff483259563c282e1b5952c14cbf4925384 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-04T12:39:10Z Fixed really lots of bugs. commit 3b1b95b089668f79c1b35268cd1489fc2438efb8 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-05T11:39:51Z Move Table Schema and Uri from CreateTableNode and InsertNode to StoreTableNode. commit f89d634b6cd3a242becffcde574f773132f11bca Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-05T13:55:39Z Fixed some serialization bugs. commit 35ee74b9fac158f721928a9cf5d0c67cec8ce28b Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-06T06:59:43Z Fixed many bugs. commit f2726c264880ba2433c8ec287cb892c4bbba2889 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-07T04:42:01Z Removed replacement of default fs. commit 7b7e85f526843d7afbfd55585d55a8ae1498abcc Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-12T12:58:38Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace commit 2414a4d55b964c78df909aa239675400aa463667 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-12T16:57:37Z Improved loading code. commit 8329ea37e58a0b80e664c26081b733c0ed44f731 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-12T23:15:25Z New initialization commit 4eab5eb671cf70b9d15e59144548dee3063018ed Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-14T03:27:55Z Add StroageService. commit f7fd98e51013d6d5d7e70095d8a8089f31cb7da5 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-14T11:43:23Z Renamed Path suffix of TableDesc to URI. commit 443aab6ab885fbb6337a6b9d831f5f049e0e1b6a Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-14T21:35:46Z Simplified TablespaceManager.get(). commit 6c4e3ee2c4f96ecc7cb1b25e05d87b1974af5842 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-15T02:34:37Z Improved rewrite rule for storage specified plan. commit 57fd37e19754783843e2aedbe2ef01c8c015335f Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-15T03:26:50Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace commit 88c5a1ec5652839cca7b367f82441b92610b84cf Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-15T04:55:37Z Add comments, remove unused codes, and refine some APIs. commit 125608a22645acdf500bb1f99e59ea3c04eed4f9 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-16T01:03:40Z Add documentation and improved catalog schema. commit 5a433703f9e7869a3f766d494feeebc4e3681798 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-16T02:03:35Z Fixed test failures. commit 5c5f0bdc82b8396ba99ddbbb61284273af55bd48 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-06-16T02:03:58Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TableSpace
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-112604021

          @hyunsik thanks for the nice patch.
          I'm reviewing, but it may take some time. I'll finish as soon as possible.
          Anyway, the test failure is not related this patch. This is very annoying, so I'll investigate this problem at https://issues.apache.org/jira/browse/TAJO-1596. Would you please trigger the test again?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-112604021 @hyunsik thanks for the nice patch. I'm reviewing, but it may take some time. I'll finish as soon as possible. Anyway, the test failure is not related this patch. This is very annoying, so I'll investigate this problem at https://issues.apache.org/jira/browse/TAJO-1596 . Would you please trigger the test again?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32791000

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -69,24 +77,47 @@ public Tablespace(String storeType) {
          */
          protected abstract void storageInit() throws IOException;

          + public String getName()

          { + return name; + }

          +
          + public URI getUri()

          { + return uri; + }

          +
          + public boolean isVisible()

          { + return visible; + }

          +
          + public abstract void setConfig(String name, String value);
          +
          + public abstract void setConfigs(Map<String, String> configs);
          +
          + public String toString()

          { + return name + "=" + uri.toString(); + }

          +
          + public abstract long getTableVolume(URI uri) throws IOException;
          +
          /**

          • * This method is called after executing "CREATE TABLE" statement.
          • * If a storage is a file based storage, a storage manager may create directory.
            + * if {@link StorageProperty#isArbitraryPathAllowed} is true,
            + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI.
            *
            - * @param tableDesc Table description which is created.
            - * @param ifNotExists Creates the table only when the table does not exist.
            - * @throws java.io.IOException
            + * @see {@link StorageProperty#isArbitraryPathAllowed}

            + * @return Root URI
            */

          • public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException;
            + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + }

          /**

          • * This method is called after executing "DROP TABLE" statement with the 'PURGE' option
          • * which is the option to delete all the data.
            + * Get Table URI
            *
          • * @param tableDesc
          • * @throws java.io.IOException
            + * @param tableName
            + * @return
            */
          • public abstract void purgeTable(TableDesc tableDesc) throws IOException;
            + public abstract URI getTableUri(String databaseName, String tableName);
              • End diff –

          This API seems to be duplicated with TableSpaceManager.getTableUri(), even though this has smaller functionality. Would you please explain any differences and proper usages?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32791000 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -69,24 +77,47 @@ public Tablespace(String storeType) { */ protected abstract void storageInit() throws IOException; + public String getName() { + return name; + } + + public URI getUri() { + return uri; + } + + public boolean isVisible() { + return visible; + } + + public abstract void setConfig(String name, String value); + + public abstract void setConfigs(Map<String, String> configs); + + public String toString() { + return name + "=" + uri.toString(); + } + + public abstract long getTableVolume(URI uri) throws IOException; + /** * This method is called after executing "CREATE TABLE" statement. * If a storage is a file based storage, a storage manager may create directory. + * if {@link StorageProperty#isArbitraryPathAllowed} is true, + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI. * - * @param tableDesc Table description which is created. - * @param ifNotExists Creates the table only when the table does not exist. - * @throws java.io.IOException + * @see {@link StorageProperty#isArbitraryPathAllowed} + * @return Root URI */ public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException; + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + } /** * This method is called after executing "DROP TABLE" statement with the 'PURGE' option * which is the option to delete all the data. + * Get Table URI * * @param tableDesc * @throws java.io.IOException + * @param tableName + * @return */ public abstract void purgeTable(TableDesc tableDesc) throws IOException; + public abstract URI getTableUri(String databaseName, String tableName); End diff – This API seems to be duplicated with TableSpaceManager.getTableUri(), even though this has smaller functionality. Would you please explain any differences and proper usages?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32791060

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java —
          @@ -19,236 +19,372 @@
          package org.apache.tajo.storage;

          import com.google.common.annotations.VisibleForTesting;
          +import com.google.common.base.Optional;
          +import com.google.common.base.Preconditions;
          import com.google.common.collect.Maps;
          -import org.apache.hadoop.conf.Configuration;
          -import org.apache.hadoop.fs.FileSystem;
          +import net.minidev.json.JSONObject;
          +import net.minidev.json.parser.JSONParser;
          +import net.minidev.json.parser.ParseException;
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          import org.apache.hadoop.fs.Path;
          -import org.apache.tajo.TaskAttemptId;
          -import org.apache.tajo.catalog.Schema;
          -import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.TajoConstants;
          import org.apache.tajo.conf.TajoConf;
          import org.apache.tajo.storage.fragment.Fragment;
          +import org.apache.tajo.util.FileUtil;
          +import org.apache.tajo.util.Pair;

          +import javax.annotation.Nullable;
          import java.io.IOException;
          import java.lang.reflect.Constructor;
          +import java.net.URI;
          import java.util.Map;
          -import java.util.concurrent.ConcurrentHashMap;
          +import java.util.TreeMap;
          +import java.util.UUID;
          +
          +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI;

          /**

          • It handles available table spaces and cache TableSpace instances.
            + *
            + * Default tablespace must be a filesystem-based one.
            + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode.
            + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine.
            */
            -public class TableSpaceManager {
            +public class TableSpaceManager implements StorageService {
            + private static final Log LOG = LogFactory.getLog(TableSpaceManager.class);
          • /**
          • * Cache of scanner handlers for each storage type.
          • */
          • protected static final Map<String, Class<? extends Scanner>> SCANNER_HANDLER_CACHE
          • = new ConcurrentHashMap<String, Class<? extends Scanner>>();
          • /**
          • * Cache of appender handlers for each storage type.
          • */
          • protected static final Map<String, Class<? extends Appender>> APPENDER_HANDLER_CACHE
          • = new ConcurrentHashMap<String, Class<? extends Appender>>();
          • private static final Class<?>[] DEFAULT_SCANNER_PARAMS = { - Configuration.class, - Schema.class, - TableMeta.class, - Fragment.class - }

            ;

          • private static final Class<?>[] DEFAULT_APPENDER_PARAMS = { - Configuration.class, - TaskAttemptId.class, - Schema.class, - TableMeta.class, - Path.class - }

            ;

          • /**
          • * Cache of Tablespace.
          • * Key is manager key(warehouse path) + store type
          • */
          • private static final Map<String, Tablespace> storageManagers = Maps.newHashMap();
          • /**
          • * Cache of constructors for each class. Pins the classes so they
          • * can't be garbage collected until ReflectionUtils can be collected.
          • */
          • private static final Map<Class<?>, Constructor<?>> CONSTRUCTOR_CACHE =
          • new ConcurrentHashMap<Class<?>, Constructor<?>>();
            + public static final String DEFAULT_CONFIG_FILE = "storage-default.json";
            + public static final String SITE_CONFIG_FILE = "storage-site.json";
            +
            + /** default tablespace name */
            + public static final String DEFAULT_TABLESPACE_NAME = "default";
            +
            + private final static TajoConf systemConf = new TajoConf();
            + private final static JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE | JSONParser.IGNORE_CONTROL_CHAR);
            +
            + // The relation ship among name, URI, Tablespaces must be kept 1:1:1.
            + protected static final Map<String, URI> SPACES_URIS_MAP = Maps.newHashMap();
            + protected static final TreeMap<URI, Tablespace> TABLE_SPACES = Maps.newTreeMap();

          + protected static final Map<Class<?>, Constructor<?>> CONSTRUCTORS = Maps.newHashMap();
          + protected static final Map<String, Class<? extends Tablespace>> TABLE_SPACE_HANDLERS = Maps.newHashMap();
          +
          + public static final Class [] TABLESPACE_PARAM = new Class []

          {String.class, URI.class}

          ;
          +
          + static

          { + instance = new TableSpaceManager(); + }

          /**

          • * Clear all class cache
            + * Singleton instance
            */
          • @VisibleForTesting
          • protected synchronized static void clearCache() {
          • CONSTRUCTOR_CACHE.clear();
          • SCANNER_HANDLER_CACHE.clear();
          • APPENDER_HANDLER_CACHE.clear();
          • storageManagers.clear();
            + private static final TableSpaceManager instance;
              • End diff –

          TablespaceManager looks to be more appropriate.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32791060 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java — @@ -19,236 +19,372 @@ package org.apache.tajo.storage; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; -import org.apache.tajo.TaskAttemptId; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.TajoConstants; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.storage.fragment.Fragment; +import org.apache.tajo.util.FileUtil; +import org.apache.tajo.util.Pair; +import javax.annotation.Nullable; import java.io.IOException; import java.lang.reflect.Constructor; +import java.net.URI; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.TreeMap; +import java.util.UUID; + +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI; /** It handles available table spaces and cache TableSpace instances. + * + * Default tablespace must be a filesystem-based one. + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode. + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine. */ -public class TableSpaceManager { +public class TableSpaceManager implements StorageService { + private static final Log LOG = LogFactory.getLog(TableSpaceManager.class); /** * Cache of scanner handlers for each storage type. */ protected static final Map<String, Class<? extends Scanner>> SCANNER_HANDLER_CACHE = new ConcurrentHashMap<String, Class<? extends Scanner>>(); /** * Cache of appender handlers for each storage type. */ protected static final Map<String, Class<? extends Appender>> APPENDER_HANDLER_CACHE = new ConcurrentHashMap<String, Class<? extends Appender>>(); private static final Class<?>[] DEFAULT_SCANNER_PARAMS = { - Configuration.class, - Schema.class, - TableMeta.class, - Fragment.class - } ; private static final Class<?>[] DEFAULT_APPENDER_PARAMS = { - Configuration.class, - TaskAttemptId.class, - Schema.class, - TableMeta.class, - Path.class - } ; /** * Cache of Tablespace. * Key is manager key(warehouse path) + store type */ private static final Map<String, Tablespace> storageManagers = Maps.newHashMap(); /** * Cache of constructors for each class. Pins the classes so they * can't be garbage collected until ReflectionUtils can be collected. */ private static final Map<Class<?>, Constructor<?>> CONSTRUCTOR_CACHE = new ConcurrentHashMap<Class<?>, Constructor<?>>(); + public static final String DEFAULT_CONFIG_FILE = "storage-default.json"; + public static final String SITE_CONFIG_FILE = "storage-site.json"; + + /** default tablespace name */ + public static final String DEFAULT_TABLESPACE_NAME = "default"; + + private final static TajoConf systemConf = new TajoConf(); + private final static JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE | JSONParser.IGNORE_CONTROL_CHAR); + + // The relation ship among name, URI, Tablespaces must be kept 1:1:1. + protected static final Map<String, URI> SPACES_URIS_MAP = Maps.newHashMap(); + protected static final TreeMap<URI, Tablespace> TABLE_SPACES = Maps.newTreeMap(); + protected static final Map<Class<?>, Constructor<?>> CONSTRUCTORS = Maps.newHashMap(); + protected static final Map<String, Class<? extends Tablespace>> TABLE_SPACE_HANDLERS = Maps.newHashMap(); + + public static final Class [] TABLESPACE_PARAM = new Class [] {String.class, URI.class} ; + + static { + instance = new TableSpaceManager(); + } /** * Clear all class cache + * Singleton instance */ @VisibleForTesting protected synchronized static void clearCache() { CONSTRUCTOR_CACHE.clear(); SCANNER_HANDLER_CACHE.clear(); APPENDER_HANDLER_CACHE.clear(); storageManagers.clear(); + private static final TableSpaceManager instance; End diff – TablespaceManager looks to be more appropriate.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32792401

          — Diff: tajo-docs/src/main/sphinx/storage_plugin.rst —
          @@ -0,0 +1,47 @@
          +*************************************
          +Storage Plugin
          +*************************************
          +
          +Overview
          +========
          +
          +Tajo supports various storage systems, such as HDFS, Amazon S3, Openstack Swift, and HBase. Also, we have a plan to support RDBMS storages like Oracle, MySQL, PostgreSQL. Tajo already embeds HDFS, S3, Openstack, and HBase, and also Tajo allows users to register custom storages and data formats to Tajo cluster instances. This section describes how you register custom storages and data types.
          +
          +Register custom storage
          +=======================
          +
          +First of all, your storage implementation should be packed as a jar file. Then, please copy the jar file into ``tajo/lib`` directory. Next, you should copy ``conf/storage-site.json.template`` into ``conf/storage-site.json`` and modify the file like the below.
          — End diff –

          Maybe ```tajo/extlib``` rather than ```tajo/lib```?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32792401 — Diff: tajo-docs/src/main/sphinx/storage_plugin.rst — @@ -0,0 +1,47 @@ +************************************* +Storage Plugin +************************************* + +Overview +======== + +Tajo supports various storage systems, such as HDFS, Amazon S3, Openstack Swift, and HBase. Also, we have a plan to support RDBMS storages like Oracle, MySQL, PostgreSQL. Tajo already embeds HDFS, S3, Openstack, and HBase, and also Tajo allows users to register custom storages and data formats to Tajo cluster instances. This section describes how you register custom storages and data types. + +Register custom storage +======================= + +First of all, your storage implementation should be packed as a jar file. Then, please copy the jar file into ``tajo/lib`` directory. Next, you should copy ``conf/storage-site.json.template`` into ``conf/storage-site.json`` and modify the file like the below. — End diff – Maybe ```tajo/extlib``` rather than ```tajo/lib```?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32792850

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java —
          @@ -19,236 +19,372 @@
          package org.apache.tajo.storage;

          import com.google.common.annotations.VisibleForTesting;
          +import com.google.common.base.Optional;
          +import com.google.common.base.Preconditions;
          import com.google.common.collect.Maps;
          -import org.apache.hadoop.conf.Configuration;
          -import org.apache.hadoop.fs.FileSystem;
          +import net.minidev.json.JSONObject;
          +import net.minidev.json.parser.JSONParser;
          +import net.minidev.json.parser.ParseException;
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          import org.apache.hadoop.fs.Path;
          -import org.apache.tajo.TaskAttemptId;
          -import org.apache.tajo.catalog.Schema;
          -import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.TajoConstants;
          import org.apache.tajo.conf.TajoConf;
          import org.apache.tajo.storage.fragment.Fragment;
          +import org.apache.tajo.util.FileUtil;
          +import org.apache.tajo.util.Pair;

          +import javax.annotation.Nullable;
          import java.io.IOException;
          import java.lang.reflect.Constructor;
          +import java.net.URI;
          import java.util.Map;
          -import java.util.concurrent.ConcurrentHashMap;
          +import java.util.TreeMap;
          +import java.util.UUID;
          +
          +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI;

          /**

          • It handles available table spaces and cache TableSpace instances.
            + *
            + * Default tablespace must be a filesystem-based one.
            + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode.
            + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine.
              • End diff –

          This explanation still looks good, but it will be nice if you list properties that the storage of default tablespace must have.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32792850 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java — @@ -19,236 +19,372 @@ package org.apache.tajo.storage; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; -import org.apache.tajo.TaskAttemptId; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.TajoConstants; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.storage.fragment.Fragment; +import org.apache.tajo.util.FileUtil; +import org.apache.tajo.util.Pair; +import javax.annotation.Nullable; import java.io.IOException; import java.lang.reflect.Constructor; +import java.net.URI; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.TreeMap; +import java.util.UUID; + +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI; /** It handles available table spaces and cache TableSpace instances. + * + * Default tablespace must be a filesystem-based one. + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode. + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine. End diff – This explanation still looks good, but it will be nice if you list properties that the storage of default tablespace must have.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32792931

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -49,18 +51,24 @@
          */
          public abstract class Tablespace {

          • public static final PathFilter hiddenFileFilter = new PathFilter() {
          • public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - }
          • };
            + protected final String name;
            + protected final URI uri;
            + /** this space is visible or not. */
              • End diff –

          Would you explain what visible means?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32792931 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -49,18 +51,24 @@ */ public abstract class Tablespace { public static final PathFilter hiddenFileFilter = new PathFilter() { public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - } }; + protected final String name; + protected final URI uri; + /** this space is visible or not. */ End diff – Would you explain what visible means?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32793010

          — Diff: tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTableSpaceManager.java —
          @@ -0,0 +1,35 @@
          +/**
          + * 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.
          + */
          +
          +package org.apache.tajo.storage;
          +
          +import com.google.common.base.Optional;
          +import org.apache.tajo.util.FileUtil;
          +import org.junit.Test;
          +
          +import java.io.IOException;
          +
          +import static org.junit.Assert.*;
          +
          +public class TestTableSpaceManager {
          + @Test
          + public void testConfigLoad() throws IOException {
          + //String json = FileUtil.readTextFileFromResource("storage-test1.json");
          — End diff –

          This test looks incomplete.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32793010 — Diff: tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTableSpaceManager.java — @@ -0,0 +1,35 @@ +/** + * 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. + */ + +package org.apache.tajo.storage; + +import com.google.common.base.Optional; +import org.apache.tajo.util.FileUtil; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.*; + +public class TestTableSpaceManager { + @Test + public void testConfigLoad() throws IOException { + //String json = FileUtil.readTextFileFromResource("storage-test1.json"); — End diff – This test looks incomplete.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113329541

          @hyunsik thanks for nice work. I left some trivial comments. Please consider them.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113329541 @hyunsik thanks for nice work. I left some trivial comments. Please consider them.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32801511

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -69,24 +77,47 @@ public Tablespace(String storeType) {
          */
          protected abstract void storageInit() throws IOException;

          + public String getName()

          { + return name; + }

          +
          + public URI getUri()

          { + return uri; + }

          +
          + public boolean isVisible()

          { + return visible; + }

          +
          + public abstract void setConfig(String name, String value);
          +
          + public abstract void setConfigs(Map<String, String> configs);
          +
          + public String toString()

          { + return name + "=" + uri.toString(); + }

          +
          + public abstract long getTableVolume(URI uri) throws IOException;
          +
          /**

          • * This method is called after executing "CREATE TABLE" statement.
          • * If a storage is a file based storage, a storage manager may create directory.
            + * if {@link StorageProperty#isArbitraryPathAllowed} is true,
            + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI.
            *
            - * @param tableDesc Table description which is created.
            - * @param ifNotExists Creates the table only when the table does not exist.
            - * @throws java.io.IOException
            + * @see {@link StorageProperty#isArbitraryPathAllowed}

            + * @return Root URI
            */

          • public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException;
            + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + }

          /**

          • * This method is called after executing "DROP TABLE" statement with the 'PURGE' option
          • * which is the option to delete all the data.
            + * Get Table URI
            *
          • * @param tableDesc
          • * @throws java.io.IOException
            + * @param tableName
            + * @return
            */
          • public abstract void purgeTable(TableDesc tableDesc) throws IOException;
            + public abstract URI getTableUri(String databaseName, String tableName);
              • End diff –

          Later, TablespaceManager will have additional APIs to wrap Tablespace APIs. This is because getting a tablespace and calling an API of tablespace are a frequently-used call routine. I'll add more utility static methods like them to TablespaceManager.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32801511 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -69,24 +77,47 @@ public Tablespace(String storeType) { */ protected abstract void storageInit() throws IOException; + public String getName() { + return name; + } + + public URI getUri() { + return uri; + } + + public boolean isVisible() { + return visible; + } + + public abstract void setConfig(String name, String value); + + public abstract void setConfigs(Map<String, String> configs); + + public String toString() { + return name + "=" + uri.toString(); + } + + public abstract long getTableVolume(URI uri) throws IOException; + /** * This method is called after executing "CREATE TABLE" statement. * If a storage is a file based storage, a storage manager may create directory. + * if {@link StorageProperty#isArbitraryPathAllowed} is true, + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI. * - * @param tableDesc Table description which is created. - * @param ifNotExists Creates the table only when the table does not exist. - * @throws java.io.IOException + * @see {@link StorageProperty#isArbitraryPathAllowed} + * @return Root URI */ public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException; + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + } /** * This method is called after executing "DROP TABLE" statement with the 'PURGE' option * which is the option to delete all the data. + * Get Table URI * * @param tableDesc * @throws java.io.IOException + * @param tableName + * @return */ public abstract void purgeTable(TableDesc tableDesc) throws IOException; + public abstract URI getTableUri(String databaseName, String tableName); End diff – Later, TablespaceManager will have additional APIs to wrap Tablespace APIs. This is because getting a tablespace and calling an API of tablespace are a frequently-used call routine. I'll add more utility static methods like them to TablespaceManager.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32801573

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java —
          @@ -19,236 +19,372 @@
          package org.apache.tajo.storage;

          import com.google.common.annotations.VisibleForTesting;
          +import com.google.common.base.Optional;
          +import com.google.common.base.Preconditions;
          import com.google.common.collect.Maps;
          -import org.apache.hadoop.conf.Configuration;
          -import org.apache.hadoop.fs.FileSystem;
          +import net.minidev.json.JSONObject;
          +import net.minidev.json.parser.JSONParser;
          +import net.minidev.json.parser.ParseException;
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          import org.apache.hadoop.fs.Path;
          -import org.apache.tajo.TaskAttemptId;
          -import org.apache.tajo.catalog.Schema;
          -import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.TajoConstants;
          import org.apache.tajo.conf.TajoConf;
          import org.apache.tajo.storage.fragment.Fragment;
          +import org.apache.tajo.util.FileUtil;
          +import org.apache.tajo.util.Pair;

          +import javax.annotation.Nullable;
          import java.io.IOException;
          import java.lang.reflect.Constructor;
          +import java.net.URI;
          import java.util.Map;
          -import java.util.concurrent.ConcurrentHashMap;
          +import java.util.TreeMap;
          +import java.util.UUID;
          +
          +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI;

          /**

          • It handles available table spaces and cache TableSpace instances.
            + *
            + * Default tablespace must be a filesystem-based one.
            + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode.
            + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine.
            */
            -public class TableSpaceManager {
            +public class TableSpaceManager implements StorageService {
            + private static final Log LOG = LogFactory.getLog(TableSpaceManager.class);
          • /**
          • * Cache of scanner handlers for each storage type.
          • */
          • protected static final Map<String, Class<? extends Scanner>> SCANNER_HANDLER_CACHE
          • = new ConcurrentHashMap<String, Class<? extends Scanner>>();
          • /**
          • * Cache of appender handlers for each storage type.
          • */
          • protected static final Map<String, Class<? extends Appender>> APPENDER_HANDLER_CACHE
          • = new ConcurrentHashMap<String, Class<? extends Appender>>();
          • private static final Class<?>[] DEFAULT_SCANNER_PARAMS = { - Configuration.class, - Schema.class, - TableMeta.class, - Fragment.class - }

            ;

          • private static final Class<?>[] DEFAULT_APPENDER_PARAMS = { - Configuration.class, - TaskAttemptId.class, - Schema.class, - TableMeta.class, - Path.class - }

            ;

          • /**
          • * Cache of Tablespace.
          • * Key is manager key(warehouse path) + store type
          • */
          • private static final Map<String, Tablespace> storageManagers = Maps.newHashMap();
          • /**
          • * Cache of constructors for each class. Pins the classes so they
          • * can't be garbage collected until ReflectionUtils can be collected.
          • */
          • private static final Map<Class<?>, Constructor<?>> CONSTRUCTOR_CACHE =
          • new ConcurrentHashMap<Class<?>, Constructor<?>>();
            + public static final String DEFAULT_CONFIG_FILE = "storage-default.json";
            + public static final String SITE_CONFIG_FILE = "storage-site.json";
            +
            + /** default tablespace name */
            + public static final String DEFAULT_TABLESPACE_NAME = "default";
            +
            + private final static TajoConf systemConf = new TajoConf();
            + private final static JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE | JSONParser.IGNORE_CONTROL_CHAR);
            +
            + // The relation ship among name, URI, Tablespaces must be kept 1:1:1.
            + protected static final Map<String, URI> SPACES_URIS_MAP = Maps.newHashMap();
            + protected static final TreeMap<URI, Tablespace> TABLE_SPACES = Maps.newTreeMap();

          + protected static final Map<Class<?>, Constructor<?>> CONSTRUCTORS = Maps.newHashMap();
          + protected static final Map<String, Class<? extends Tablespace>> TABLE_SPACE_HANDLERS = Maps.newHashMap();
          +
          + public static final Class [] TABLESPACE_PARAM = new Class []

          {String.class, URI.class}

          ;
          +
          + static

          { + instance = new TableSpaceManager(); + }

          /**

          • * Clear all class cache
            + * Singleton instance
            */
          • @VisibleForTesting
          • protected synchronized static void clearCache() {
          • CONSTRUCTOR_CACHE.clear();
          • SCANNER_HANDLER_CACHE.clear();
          • APPENDER_HANDLER_CACHE.clear();
          • storageManagers.clear();
            + private static final TableSpaceManager instance;
              • End diff –

          I haven't implemented format handlers (i.e., scanner and appender) in TablespaceManager yet. This patch still keeps SCANNER_HANDLER and APPENDER_HANDLER in OldStorageManager, which is old one. In the following issues, I'll implement format handlers and then I'll remove OldStorageManager.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32801573 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java — @@ -19,236 +19,372 @@ package org.apache.tajo.storage; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; -import org.apache.tajo.TaskAttemptId; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.TajoConstants; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.storage.fragment.Fragment; +import org.apache.tajo.util.FileUtil; +import org.apache.tajo.util.Pair; +import javax.annotation.Nullable; import java.io.IOException; import java.lang.reflect.Constructor; +import java.net.URI; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.TreeMap; +import java.util.UUID; + +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI; /** It handles available table spaces and cache TableSpace instances. + * + * Default tablespace must be a filesystem-based one. + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode. + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine. */ -public class TableSpaceManager { +public class TableSpaceManager implements StorageService { + private static final Log LOG = LogFactory.getLog(TableSpaceManager.class); /** * Cache of scanner handlers for each storage type. */ protected static final Map<String, Class<? extends Scanner>> SCANNER_HANDLER_CACHE = new ConcurrentHashMap<String, Class<? extends Scanner>>(); /** * Cache of appender handlers for each storage type. */ protected static final Map<String, Class<? extends Appender>> APPENDER_HANDLER_CACHE = new ConcurrentHashMap<String, Class<? extends Appender>>(); private static final Class<?>[] DEFAULT_SCANNER_PARAMS = { - Configuration.class, - Schema.class, - TableMeta.class, - Fragment.class - } ; private static final Class<?>[] DEFAULT_APPENDER_PARAMS = { - Configuration.class, - TaskAttemptId.class, - Schema.class, - TableMeta.class, - Path.class - } ; /** * Cache of Tablespace. * Key is manager key(warehouse path) + store type */ private static final Map<String, Tablespace> storageManagers = Maps.newHashMap(); /** * Cache of constructors for each class. Pins the classes so they * can't be garbage collected until ReflectionUtils can be collected. */ private static final Map<Class<?>, Constructor<?>> CONSTRUCTOR_CACHE = new ConcurrentHashMap<Class<?>, Constructor<?>>(); + public static final String DEFAULT_CONFIG_FILE = "storage-default.json"; + public static final String SITE_CONFIG_FILE = "storage-site.json"; + + /** default tablespace name */ + public static final String DEFAULT_TABLESPACE_NAME = "default"; + + private final static TajoConf systemConf = new TajoConf(); + private final static JSONParser parser = new JSONParser(JSONParser.MODE_JSON_SIMPLE | JSONParser.IGNORE_CONTROL_CHAR); + + // The relation ship among name, URI, Tablespaces must be kept 1:1:1. + protected static final Map<String, URI> SPACES_URIS_MAP = Maps.newHashMap(); + protected static final TreeMap<URI, Tablespace> TABLE_SPACES = Maps.newTreeMap(); + protected static final Map<Class<?>, Constructor<?>> CONSTRUCTORS = Maps.newHashMap(); + protected static final Map<String, Class<? extends Tablespace>> TABLE_SPACE_HANDLERS = Maps.newHashMap(); + + public static final Class [] TABLESPACE_PARAM = new Class [] {String.class, URI.class} ; + + static { + instance = new TableSpaceManager(); + } /** * Clear all class cache + * Singleton instance */ @VisibleForTesting protected synchronized static void clearCache() { CONSTRUCTOR_CACHE.clear(); SCANNER_HANDLER_CACHE.clear(); APPENDER_HANDLER_CACHE.clear(); storageManagers.clear(); + private static final TableSpaceManager instance; End diff – I haven't implemented format handlers (i.e., scanner and appender) in TablespaceManager yet. This patch still keeps SCANNER_HANDLER and APPENDER_HANDLER in OldStorageManager, which is old one. In the following issues, I'll implement format handlers and then I'll remove OldStorageManager.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32801588

          — Diff: tajo-docs/src/main/sphinx/storage_plugin.rst —
          @@ -0,0 +1,47 @@
          +*************************************
          +Storage Plugin
          +*************************************
          +
          +Overview
          +========
          +
          +Tajo supports various storage systems, such as HDFS, Amazon S3, Openstack Swift, and HBase. Also, we have a plan to support RDBMS storages like Oracle, MySQL, PostgreSQL. Tajo already embeds HDFS, S3, Openstack, and HBase, and also Tajo allows users to register custom storages and data formats to Tajo cluster instances. This section describes how you register custom storages and data types.
          +
          +Register custom storage
          +=======================
          +
          +First of all, your storage implementation should be packed as a jar file. Then, please copy the jar file into ``tajo/lib`` directory. Next, you should copy ``conf/storage-site.json.template`` into ``conf/storage-site.json`` and modify the file like the below.
          — End diff –

          I've just committed ``extlib``. I'll change it. Thanks!

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32801588 — Diff: tajo-docs/src/main/sphinx/storage_plugin.rst — @@ -0,0 +1,47 @@ +************************************* +Storage Plugin +************************************* + +Overview +======== + +Tajo supports various storage systems, such as HDFS, Amazon S3, Openstack Swift, and HBase. Also, we have a plan to support RDBMS storages like Oracle, MySQL, PostgreSQL. Tajo already embeds HDFS, S3, Openstack, and HBase, and also Tajo allows users to register custom storages and data formats to Tajo cluster instances. This section describes how you register custom storages and data types. + +Register custom storage +======================= + +First of all, your storage implementation should be packed as a jar file. Then, please copy the jar file into ``tajo/lib`` directory. Next, you should copy ``conf/storage-site.json.template`` into ``conf/storage-site.json`` and modify the file like the below. — End diff – I've just committed ``extlib``. I'll change it. Thanks!
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32801654

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -49,18 +51,24 @@
          */
          public abstract class Tablespace {

          • public static final PathFilter hiddenFileFilter = new PathFilter() {
          • public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - }
          • };
            + protected final String name;
            + protected final URI uri;
            + /** this space is visible or not. */
              • End diff –

          TablespaceManager automatically adds temporary tablespaces like ``file:///``. These temporary tables are only used internally in Tajo, and they must not not visible. The visible member variable is for that.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32801654 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -49,18 +51,24 @@ */ public abstract class Tablespace { public static final PathFilter hiddenFileFilter = new PathFilter() { public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - } }; + protected final String name; + protected final URI uri; + /** this space is visible or not. */ End diff – TablespaceManager automatically adds temporary tablespaces like `` file:/// ``. These temporary tables are only used internally in Tajo, and they must not not visible. The visible member variable is for that.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32801679

          — Diff: tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTableSpaceManager.java —
          @@ -0,0 +1,35 @@
          +/**
          + * 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.
          + */
          +
          +package org.apache.tajo.storage;
          +
          +import com.google.common.base.Optional;
          +import org.apache.tajo.util.FileUtil;
          +import org.junit.Test;
          +
          +import java.io.IOException;
          +
          +import static org.junit.Assert.*;
          +
          +public class TestTableSpaceManager {
          + @Test
          + public void testConfigLoad() throws IOException {
          + //String json = FileUtil.readTextFileFromResource("storage-test1.json");
          — End diff –

          I'll remove the test. In the following issues, I'll add some tests.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32801679 — Diff: tajo-storage/tajo-storage-common/src/test/java/org/apache/tajo/storage/TestTableSpaceManager.java — @@ -0,0 +1,35 @@ +/** + * 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. + */ + +package org.apache.tajo.storage; + +import com.google.common.base.Optional; +import org.apache.tajo.util.FileUtil; +import org.junit.Test; + +import java.io.IOException; + +import static org.junit.Assert.*; + +public class TestTableSpaceManager { + @Test + public void testConfigLoad() throws IOException { + //String json = FileUtil.readTextFileFromResource("storage-test1.json"); — End diff – I'll remove the test. In the following issues, I'll add some tests.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32802905

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java —
          @@ -19,236 +19,372 @@
          package org.apache.tajo.storage;

          import com.google.common.annotations.VisibleForTesting;
          +import com.google.common.base.Optional;
          +import com.google.common.base.Preconditions;
          import com.google.common.collect.Maps;
          -import org.apache.hadoop.conf.Configuration;
          -import org.apache.hadoop.fs.FileSystem;
          +import net.minidev.json.JSONObject;
          +import net.minidev.json.parser.JSONParser;
          +import net.minidev.json.parser.ParseException;
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          import org.apache.hadoop.fs.Path;
          -import org.apache.tajo.TaskAttemptId;
          -import org.apache.tajo.catalog.Schema;
          -import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.TajoConstants;
          import org.apache.tajo.conf.TajoConf;
          import org.apache.tajo.storage.fragment.Fragment;
          +import org.apache.tajo.util.FileUtil;
          +import org.apache.tajo.util.Pair;

          +import javax.annotation.Nullable;
          import java.io.IOException;
          import java.lang.reflect.Constructor;
          +import java.net.URI;
          import java.util.Map;
          -import java.util.concurrent.ConcurrentHashMap;
          +import java.util.TreeMap;
          +import java.util.UUID;
          +
          +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI;

          /**

          • It handles available table spaces and cache TableSpace instances.
            + *
            + * Default tablespace must be a filesystem-based one.
            + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode.
            + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine.
              • End diff –

          Currently, some part still is hard coded for default tablespace. I'm not sure what happen if we use other storage as a default storage. I think that we need more tests to allow other storages to be used for default storage.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32802905 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java — @@ -19,236 +19,372 @@ package org.apache.tajo.storage; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; -import org.apache.tajo.TaskAttemptId; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.TajoConstants; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.storage.fragment.Fragment; +import org.apache.tajo.util.FileUtil; +import org.apache.tajo.util.Pair; +import javax.annotation.Nullable; import java.io.IOException; import java.lang.reflect.Constructor; +import java.net.URI; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.TreeMap; +import java.util.UUID; + +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI; /** It handles available table spaces and cache TableSpace instances. + * + * Default tablespace must be a filesystem-based one. + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode. + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine. End diff – Currently, some part still is hard coded for default tablespace. I'm not sure what happen if we use other storage as a default storage. I think that we need more tests to allow other storages to be used for default storage.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113382426

          Thank you for your review. I reflected the comments.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113382426 Thank you for your review. I reflected the comments.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32806680

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -49,18 +51,24 @@
          */
          public abstract class Tablespace {

          • public static final PathFilter hiddenFileFilter = new PathFilter() {
          • public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - }
          • };
            + protected final String name;
            + protected final URI uri;
            + /** this space is visible or not. */
              • End diff –

          Got it. Thanks.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32806680 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -49,18 +51,24 @@ */ public abstract class Tablespace { public static final PathFilter hiddenFileFilter = new PathFilter() { public boolean accept(Path p) { - String name = p.getName(); - return !name.startsWith("_") && !name.startsWith("."); - } }; + protected final String name; + protected final URI uri; + /** this space is visible or not. */ End diff – Got it. Thanks.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32806736

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java —
          @@ -19,236 +19,372 @@
          package org.apache.tajo.storage;

          import com.google.common.annotations.VisibleForTesting;
          +import com.google.common.base.Optional;
          +import com.google.common.base.Preconditions;
          import com.google.common.collect.Maps;
          -import org.apache.hadoop.conf.Configuration;
          -import org.apache.hadoop.fs.FileSystem;
          +import net.minidev.json.JSONObject;
          +import net.minidev.json.parser.JSONParser;
          +import net.minidev.json.parser.ParseException;
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          import org.apache.hadoop.fs.Path;
          -import org.apache.tajo.TaskAttemptId;
          -import org.apache.tajo.catalog.Schema;
          -import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.TajoConstants;
          import org.apache.tajo.conf.TajoConf;
          import org.apache.tajo.storage.fragment.Fragment;
          +import org.apache.tajo.util.FileUtil;
          +import org.apache.tajo.util.Pair;

          +import javax.annotation.Nullable;
          import java.io.IOException;
          import java.lang.reflect.Constructor;
          +import java.net.URI;
          import java.util.Map;
          -import java.util.concurrent.ConcurrentHashMap;
          +import java.util.TreeMap;
          +import java.util.UUID;
          +
          +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI;

          /**

          • It handles available table spaces and cache TableSpace instances.
            + *
            + * Default tablespace must be a filesystem-based one.
            + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode.
            + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine.
              • End diff –

          I agree.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32806736 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java — @@ -19,236 +19,372 @@ package org.apache.tajo.storage; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FileSystem; +import net.minidev.json.JSONObject; +import net.minidev.json.parser.JSONParser; +import net.minidev.json.parser.ParseException; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.Path; -import org.apache.tajo.TaskAttemptId; -import org.apache.tajo.catalog.Schema; -import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.TajoConstants; import org.apache.tajo.conf.TajoConf; import org.apache.tajo.storage.fragment.Fragment; +import org.apache.tajo.util.FileUtil; +import org.apache.tajo.util.Pair; +import javax.annotation.Nullable; import java.io.IOException; import java.lang.reflect.Constructor; +import java.net.URI; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; +import java.util.TreeMap; +import java.util.UUID; + +import static org.apache.tajo.storage.StorageConstants.LOCAL_FS_URI; /** It handles available table spaces and cache TableSpace instances. + * + * Default tablespace must be a filesystem-based one. + * HDFS and S3 can be a default tablespace if a Tajo cluster is in fully distributed mode. + * Local file system can be a default tablespace if a Tajo cluster runs on a single machine. End diff – I agree.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r32806774

          — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java —
          @@ -69,24 +77,47 @@ public Tablespace(String storeType) {
          */
          protected abstract void storageInit() throws IOException;

          + public String getName()

          { + return name; + }

          +
          + public URI getUri()

          { + return uri; + }

          +
          + public boolean isVisible()

          { + return visible; + }

          +
          + public abstract void setConfig(String name, String value);
          +
          + public abstract void setConfigs(Map<String, String> configs);
          +
          + public String toString()

          { + return name + "=" + uri.toString(); + }

          +
          + public abstract long getTableVolume(URI uri) throws IOException;
          +
          /**

          • * This method is called after executing "CREATE TABLE" statement.
          • * If a storage is a file based storage, a storage manager may create directory.
            + * if {@link StorageProperty#isArbitraryPathAllowed} is true,
            + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI.
            *
            - * @param tableDesc Table description which is created.
            - * @param ifNotExists Creates the table only when the table does not exist.
            - * @throws java.io.IOException
            + * @see {@link StorageProperty#isArbitraryPathAllowed}

            + * @return Root URI
            */

          • public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException;
            + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + }

          /**

          • * This method is called after executing "DROP TABLE" statement with the 'PURGE' option
          • * which is the option to delete all the data.
            + * Get Table URI
            *
          • * @param tableDesc
          • * @throws java.io.IOException
            + * @param tableName
            + * @return
            */
          • public abstract void purgeTable(TableDesc tableDesc) throws IOException;
            + public abstract URI getTableUri(String databaseName, String tableName);
              • End diff –

          Got it. Thanks.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r32806774 — Diff: tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java — @@ -69,24 +77,47 @@ public Tablespace(String storeType) { */ protected abstract void storageInit() throws IOException; + public String getName() { + return name; + } + + public URI getUri() { + return uri; + } + + public boolean isVisible() { + return visible; + } + + public abstract void setConfig(String name, String value); + + public abstract void setConfigs(Map<String, String> configs); + + public String toString() { + return name + "=" + uri.toString(); + } + + public abstract long getTableVolume(URI uri) throws IOException; + /** * This method is called after executing "CREATE TABLE" statement. * If a storage is a file based storage, a storage manager may create directory. + * if {@link StorageProperty#isArbitraryPathAllowed} is true, + * the storage allows arbitrary path accesses. In this case, the storage must provide the root URI. * - * @param tableDesc Table description which is created. - * @param ifNotExists Creates the table only when the table does not exist. - * @throws java.io.IOException + * @see {@link StorageProperty#isArbitraryPathAllowed} + * @return Root URI */ public abstract void createTable(TableDesc tableDesc, boolean ifNotExists) throws IOException; + public URI getRootUri() { + throw new UnsupportedException( + String.format("Tablespace '%s' does not allow the use of artibrary paths", uri.toString())); + } /** * This method is called after executing "DROP TABLE" statement with the 'PURGE' option * which is the option to delete all the data. + * Get Table URI * * @param tableDesc * @throws java.io.IOException + * @param tableName + * @return */ public abstract void purgeTable(TableDesc tableDesc) throws IOException; + public abstract URI getTableUri(String databaseName, String tableName); End diff – Got it. Thanks.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113425928

          Thanks @hyunsik, but it seems that there were some problems during test on Travis.
          Please trigger again.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113425928 Thanks @hyunsik, but it seems that there were some problems during test on Travis. Please trigger again.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113759791

          I've updated the patch, and I also improved the feature of insert row values.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113759791 I've updated the patch, and I also improved the feature of insert row values.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113847577

          I found some problem from unit tests through Travis.

          ``
          java.net.ConnectException: Call From testing-worker-linux-f25aadab-1-20030-linux-7-67640030/127.0.0.1 to localhost:50374 failed on connection exception:
          ``

          This error message means one of three cases:

          • localhost is not 127.0.0.1
          • port 50374 is denied by iptables
          • server is already closed.

          I'll dig it more and I'll upload the new patch soon.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113847577 I found some problem from unit tests through Travis. `` java.net.ConnectException: Call From testing-worker-linux-f25aadab-1-20030-linux-7-67640030/127.0.0.1 to localhost:50374 failed on connection exception: `` This error message means one of three cases: localhost is not 127.0.0.1 port 50374 is denied by iptables server is already closed. I'll dig it more and I'll upload the new patch soon.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113976219

          I found the problem. TablespaceManager is designed as a singleton class in a cluster, but some unit tests starts additional TajoTestingCluster. It overwrites the tablespace configurations of TablespaceManager. It results in test failures. I'll try to change them to share the one cluster.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113976219 I found the problem. TablespaceManager is designed as a singleton class in a cluster, but some unit tests starts additional TajoTestingCluster. It overwrites the tablespace configurations of TablespaceManager. It results in test failures. I'll try to change them to share the one cluster.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-113984449

          Looks nice. Please ping me when you are ready.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-113984449 Looks nice. Please ping me when you are ready.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114012798

          I changed travis script to perform unit tests on jdk 7 as well as jdk 8. I also increased ulimit for thread num.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114012798 I changed travis script to perform unit tests on jdk 7 as well as jdk 8. I also increased ulimit for thread num.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114178115

          @jihoonson It seems to be ready.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114178115 @jihoonson It seems to be ready.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114422777

          rebased.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114422777 rebased.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33038516

          — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java —
          @@ -0,0 +1,107 @@
          +/*
          + * 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.
          + */
          +
          +package org.apache.tajo.engine.planner.physical;
          +
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          +import org.apache.tajo.catalog.CatalogUtil;
          +import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.catalog.statistics.StatisticsUtil;
          +import org.apache.tajo.catalog.statistics.TableStats;
          +import org.apache.tajo.plan.logical.PersistentStoreNode;
          +import org.apache.tajo.plan.logical.StoreTableNode;
          +import org.apache.tajo.storage.Appender;
          +import org.apache.tajo.storage.TablespaceManager;
          +import org.apache.tajo.storage.Tuple;
          +import org.apache.tajo.worker.TaskAttemptContext;
          +
          +import java.io.IOException;
          +
          +/**
          + * This is a physical executor to store a row immediately
          + */
          +public class InsertRowExec extends UnaryPhysicalExec {
          — End diff –

          Would you please explain any differences from StoreTableExec except that StoreTableExec supports the multi-file write?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33038516 — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java — @@ -0,0 +1,107 @@ +/* + * 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. + */ + +package org.apache.tajo.engine.planner.physical; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tajo.catalog.CatalogUtil; +import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.catalog.statistics.StatisticsUtil; +import org.apache.tajo.catalog.statistics.TableStats; +import org.apache.tajo.plan.logical.PersistentStoreNode; +import org.apache.tajo.plan.logical.StoreTableNode; +import org.apache.tajo.storage.Appender; +import org.apache.tajo.storage.TablespaceManager; +import org.apache.tajo.storage.Tuple; +import org.apache.tajo.worker.TaskAttemptContext; + +import java.io.IOException; + +/** + * This is a physical executor to store a row immediately + */ +public class InsertRowExec extends UnaryPhysicalExec { — End diff – Would you please explain any differences from StoreTableExec except that StoreTableExec supports the multi-file write?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33039748

          — Diff: tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java —
          @@ -436,14 +476,17 @@ public void executeDistributedQuery(QueryContext queryContext, Session session,
          SubmitQueryResponse.Builder responseBuilder) throws Exception {
          LogicalRootNode rootNode = plan.getRootBlock().getRoot();

          • String storeType = PlannerUtil.getStoreType(plan);
          • if (storeType != null) {
          • Tablespace sm = TableSpaceManager.getStorageManager(context.getConf(), storeType);
          • StorageProperty storageProperty = sm.getStorageProperty();
          • if (!storageProperty.isSupportsInsertInto()) {
            + TableDesc tableDesc = PlannerUtil.getTableDesc(catalog, plan.getRootBlock().getRoot());
            + if (tableDesc != null) {
            +
            + Tablespace space = TablespaceManager.get(tableDesc.getUri()).get();
            + FormatProperty formatProperty = space.getFormatProperty(tableDesc.getMeta());
            +
            + if (!formatProperty.isInsertable()) {
            throw new VerifyException("Inserting into non-file storage is not supported.");
              • End diff –

          It would be better if the storage name is printed with this exception.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33039748 — Diff: tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java — @@ -436,14 +476,17 @@ public void executeDistributedQuery(QueryContext queryContext, Session session, SubmitQueryResponse.Builder responseBuilder) throws Exception { LogicalRootNode rootNode = plan.getRootBlock().getRoot(); String storeType = PlannerUtil.getStoreType(plan); if (storeType != null) { Tablespace sm = TableSpaceManager.getStorageManager(context.getConf(), storeType); StorageProperty storageProperty = sm.getStorageProperty(); if (!storageProperty.isSupportsInsertInto()) { + TableDesc tableDesc = PlannerUtil.getTableDesc(catalog, plan.getRootBlock().getRoot()); + if (tableDesc != null) { + + Tablespace space = TablespaceManager.get(tableDesc.getUri()).get(); + FormatProperty formatProperty = space.getFormatProperty(tableDesc.getMeta()); + + if (!formatProperty.isInsertable()) { throw new VerifyException("Inserting into non-file storage is not supported."); End diff – It would be better if the storage name is printed with this exception.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33039889

          — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java —
          @@ -307,43 +291,32 @@ private static boolean isTerminatedState(QueryState state)

          { state == QueryState.QUERY_ERROR; }

          + private LogicalPlan plan;
          +
          public synchronized void startQuery() {

          • Tablespace sm = null;
          • LogicalPlan plan = null;
            + //LogicalPlan plan = null;
              • End diff –

          Please remove this line.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33039889 — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java — @@ -307,43 +291,32 @@ private static boolean isTerminatedState(QueryState state) { state == QueryState.QUERY_ERROR; } + private LogicalPlan plan; + public synchronized void startQuery() { Tablespace sm = null; LogicalPlan plan = null; + //LogicalPlan plan = null; End diff – Please remove this line.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33040261

          — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java —
          @@ -105,25 +99,29 @@ public static void scheduleFragmentsForJoinQuery(TaskSchedulerContext schedulerC
          ExecutionBlockId scanEBId = TajoIdUtils.createExecutionBlockId(scans[i].getTableName());
          stats[i] = masterContext.getStage(scanEBId).getResultStats().getNumBytes();
          }

          • fragments[i] = new FileFragment(scans[i].getCanonicalName(), tablePath, 0, 0, new String[] {UNKNOWN_HOST}

            );
            +
            + // TODO - We should remove dummy flagment usages

              • End diff –

          Please fix the typo.
          flagment -> fragment

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33040261 — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java — @@ -105,25 +99,29 @@ public static void scheduleFragmentsForJoinQuery(TaskSchedulerContext schedulerC ExecutionBlockId scanEBId = TajoIdUtils.createExecutionBlockId(scans [i] .getTableName()); stats [i] = masterContext.getStage(scanEBId).getResultStats().getNumBytes(); } fragments [i] = new FileFragment(scans [i] .getCanonicalName(), tablePath, 0, 0, new String[] {UNKNOWN_HOST} ); + + // TODO - We should remove dummy flagment usages End diff – Please fix the typo. flagment -> fragment
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33040727

          — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java —
          @@ -648,10 +644,15 @@ public static void scheduleRangeShuffledFetches(TaskSchedulerContext schedulerCo
          throw new IOException("Can't get table meta data from catalog: " +
          PlannerUtil.getStoreTableName(masterPlan.getLogicalPlan()));
          }

          • ranges = TableSpaceManager.getStorageManager(stage.getContext().getConf(), storeType)
          • .getInsertSortRanges(stage.getContext().getQueryContext(), tableDesc,
          • sortNode.getInSchema(), sortSpecs,
          • mergedRange);
            +
            + Tablespace space = TablespaceManager.getAnyByScheme(storeType).get();
            + ranges = space.getInsertSortRanges(
              • End diff –

          ```space``` may be checked whether it is absent or not.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33040727 — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java — @@ -648,10 +644,15 @@ public static void scheduleRangeShuffledFetches(TaskSchedulerContext schedulerCo throw new IOException("Can't get table meta data from catalog: " + PlannerUtil.getStoreTableName(masterPlan.getLogicalPlan())); } ranges = TableSpaceManager.getStorageManager(stage.getContext().getConf(), storeType) .getInsertSortRanges(stage.getContext().getQueryContext(), tableDesc, sortNode.getInSchema(), sortSpecs, mergedRange); + + Tablespace space = TablespaceManager.getAnyByScheme(storeType).get(); + ranges = space.getInsertSortRanges( End diff – ```space``` may be checked whether it is absent or not.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114510485

          I left some more trivial comments and questions.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114510485 I left some more trivial comments and questions.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33068368

          — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java —
          @@ -0,0 +1,107 @@
          +/*
          + * 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.
          + */
          +
          +package org.apache.tajo.engine.planner.physical;
          +
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          +import org.apache.tajo.catalog.CatalogUtil;
          +import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.catalog.statistics.StatisticsUtil;
          +import org.apache.tajo.catalog.statistics.TableStats;
          +import org.apache.tajo.plan.logical.PersistentStoreNode;
          +import org.apache.tajo.plan.logical.StoreTableNode;
          +import org.apache.tajo.storage.Appender;
          +import org.apache.tajo.storage.TablespaceManager;
          +import org.apache.tajo.storage.Tuple;
          +import org.apache.tajo.worker.TaskAttemptContext;
          +
          +import java.io.IOException;
          +
          +/**
          + * This is a physical executor to store a row immediately
          + */
          +public class InsertRowExec extends UnaryPhysicalExec {
          — End diff –

          Currently, StoreTableExec cannot handle OLTP-like storages. We should modify StoreTableExec::openNewFile for them. The main objective of InsertRowExec is to avoid StoreTableExec to be multiple purposed. If we use StoreTableExec here, StoreTableExec would be more messy to having more exceptional and intuitive conditions in StoreTableExec::openNewFile().

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33068368 — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java — @@ -0,0 +1,107 @@ +/* + * 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. + */ + +package org.apache.tajo.engine.planner.physical; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tajo.catalog.CatalogUtil; +import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.catalog.statistics.StatisticsUtil; +import org.apache.tajo.catalog.statistics.TableStats; +import org.apache.tajo.plan.logical.PersistentStoreNode; +import org.apache.tajo.plan.logical.StoreTableNode; +import org.apache.tajo.storage.Appender; +import org.apache.tajo.storage.TablespaceManager; +import org.apache.tajo.storage.Tuple; +import org.apache.tajo.worker.TaskAttemptContext; + +import java.io.IOException; + +/** + * This is a physical executor to store a row immediately + */ +public class InsertRowExec extends UnaryPhysicalExec { — End diff – Currently, StoreTableExec cannot handle OLTP-like storages. We should modify StoreTableExec::openNewFile for them. The main objective of InsertRowExec is to avoid StoreTableExec to be multiple purposed. If we use StoreTableExec here, StoreTableExec would be more messy to having more exceptional and intuitive conditions in StoreTableExec::openNewFile().
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33068539

          — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java —
          @@ -0,0 +1,107 @@
          +/*
          + * 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.
          + */
          +
          +package org.apache.tajo.engine.planner.physical;
          +
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          +import org.apache.tajo.catalog.CatalogUtil;
          +import org.apache.tajo.catalog.TableMeta;
          +import org.apache.tajo.catalog.statistics.StatisticsUtil;
          +import org.apache.tajo.catalog.statistics.TableStats;
          +import org.apache.tajo.plan.logical.PersistentStoreNode;
          +import org.apache.tajo.plan.logical.StoreTableNode;
          +import org.apache.tajo.storage.Appender;
          +import org.apache.tajo.storage.TablespaceManager;
          +import org.apache.tajo.storage.Tuple;
          +import org.apache.tajo.worker.TaskAttemptContext;
          +
          +import java.io.IOException;
          +
          +/**
          + * This is a physical executor to store a row immediately
          + */
          +public class InsertRowExec extends UnaryPhysicalExec {
          — End diff –

          In additional, InsertRowExec will handle multiple rows because INSERT INTO VALUES statement allows multiple rows. So, I'll change the name for the purpose.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33068539 — Diff: tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowExec.java — @@ -0,0 +1,107 @@ +/* + * 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. + */ + +package org.apache.tajo.engine.planner.physical; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tajo.catalog.CatalogUtil; +import org.apache.tajo.catalog.TableMeta; +import org.apache.tajo.catalog.statistics.StatisticsUtil; +import org.apache.tajo.catalog.statistics.TableStats; +import org.apache.tajo.plan.logical.PersistentStoreNode; +import org.apache.tajo.plan.logical.StoreTableNode; +import org.apache.tajo.storage.Appender; +import org.apache.tajo.storage.TablespaceManager; +import org.apache.tajo.storage.Tuple; +import org.apache.tajo.worker.TaskAttemptContext; + +import java.io.IOException; + +/** + * This is a physical executor to store a row immediately + */ +public class InsertRowExec extends UnaryPhysicalExec { — End diff – In additional, InsertRowExec will handle multiple rows because INSERT INTO VALUES statement allows multiple rows. So, I'll change the name for the purpose.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33068891

          — Diff: tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java —
          @@ -436,14 +476,17 @@ public void executeDistributedQuery(QueryContext queryContext, Session session,
          SubmitQueryResponse.Builder responseBuilder) throws Exception {
          LogicalRootNode rootNode = plan.getRootBlock().getRoot();

          • String storeType = PlannerUtil.getStoreType(plan);
          • if (storeType != null) {
          • Tablespace sm = TableSpaceManager.getStorageManager(context.getConf(), storeType);
          • StorageProperty storageProperty = sm.getStorageProperty();
          • if (!storageProperty.isSupportsInsertInto()) {
            + TableDesc tableDesc = PlannerUtil.getTableDesc(catalog, plan.getRootBlock().getRoot());
            + if (tableDesc != null) {
            +
            + Tablespace space = TablespaceManager.get(tableDesc.getUri()).get();
            + FormatProperty formatProperty = space.getFormatProperty(tableDesc.getMeta());
            +
            + if (!formatProperty.isInsertable()) {
            throw new VerifyException("Inserting into non-file storage is not supported.");
              • End diff –

          Fixed.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33068891 — Diff: tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java — @@ -436,14 +476,17 @@ public void executeDistributedQuery(QueryContext queryContext, Session session, SubmitQueryResponse.Builder responseBuilder) throws Exception { LogicalRootNode rootNode = plan.getRootBlock().getRoot(); String storeType = PlannerUtil.getStoreType(plan); if (storeType != null) { Tablespace sm = TableSpaceManager.getStorageManager(context.getConf(), storeType); StorageProperty storageProperty = sm.getStorageProperty(); if (!storageProperty.isSupportsInsertInto()) { + TableDesc tableDesc = PlannerUtil.getTableDesc(catalog, plan.getRootBlock().getRoot()); + if (tableDesc != null) { + + Tablespace space = TablespaceManager.get(tableDesc.getUri()).get(); + FormatProperty formatProperty = space.getFormatProperty(tableDesc.getMeta()); + + if (!formatProperty.isInsertable()) { throw new VerifyException("Inserting into non-file storage is not supported."); End diff – Fixed.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/602#discussion_r33069841

          — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java —
          @@ -648,10 +644,15 @@ public static void scheduleRangeShuffledFetches(TaskSchedulerContext schedulerCo
          throw new IOException("Can't get table meta data from catalog: " +
          PlannerUtil.getStoreTableName(masterPlan.getLogicalPlan()));
          }

          • ranges = TableSpaceManager.getStorageManager(stage.getContext().getConf(), storeType)
          • .getInsertSortRanges(stage.getContext().getQueryContext(), tableDesc,
          • sortNode.getInSchema(), sortSpecs,
          • mergedRange);
            +
            + Tablespace space = TablespaceManager.getAnyByScheme(storeType).get();
            + ranges = space.getInsertSortRanges(
              • End diff –

          In original implementation, it guarantees that TablespaceManager.getAnyByScheme(storeType) will always return the proper tablespace handler if ``sortNode.getSortPurpose()`` is ``STORAGE_SPECIFIED``.

          But, its implementation is not intuitive. We should improve them. But, it requires lots of extra changes. I'll continue to improve storage layer APIs. It will be improved later too.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on a diff in the pull request: https://github.com/apache/tajo/pull/602#discussion_r33069841 — Diff: tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java — @@ -648,10 +644,15 @@ public static void scheduleRangeShuffledFetches(TaskSchedulerContext schedulerCo throw new IOException("Can't get table meta data from catalog: " + PlannerUtil.getStoreTableName(masterPlan.getLogicalPlan())); } ranges = TableSpaceManager.getStorageManager(stage.getContext().getConf(), storeType) .getInsertSortRanges(stage.getContext().getQueryContext(), tableDesc, sortNode.getInSchema(), sortSpecs, mergedRange); + + Tablespace space = TablespaceManager.getAnyByScheme(storeType).get(); + ranges = space.getInsertSortRanges( End diff – In original implementation, it guarantees that TablespaceManager.getAnyByScheme(storeType) will always return the proper tablespace handler if ``sortNode.getSortPurpose()`` is ``STORAGE_SPECIFIED``. But, its implementation is not intuitive. We should improve them. But, it requires lots of extra changes. I'll continue to improve storage layer APIs. It will be improved later too.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114588460

          I reflected the comments and updated the patch. Thank you for your review.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114588460 I reflected the comments and updated the patch. Thank you for your review.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/602#issuecomment-114653948

          Thanks for the nice patch and fast update.
          +1 Ship it!

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/602#issuecomment-114653948 Thanks for the nice patch and fast update. +1 Ship it!
          Hide
          hyunsik Hyunsik Choi added a comment -

          committed to master branch. Thanks!

          Show
          hyunsik Hyunsik Choi added a comment - committed to master branch. Thanks!
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik closed the pull request at:

          https://github.com/apache/tajo/pull/602

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik closed the pull request at: https://github.com/apache/tajo/pull/602
          Hide
          hudson Hudson added a comment -

          FAILURE: Integrated in Tajo-master-build #737 (See https://builds.apache.org/job/Tajo-master-build/737/)
          TAJO-1616: Implement TablespaceManager to load Tablespaces. (hyunsik: rev d0f37012faf1a8a3259210287e9bc7762ce62001)

          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/DistributedQueryHookManager.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
          • tajo-dist/src/main/conf/storage-site.json.template
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/derby.xml
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java
          • tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
          • tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/StoreTableNode.java
          • tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/oracle/oracle.xml
          • tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java
          • tajo-plan/src/main/proto/Plan.proto
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/ColumnMapping.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
          • tajo-core/src/main/resources/webapps/admin/catalogview.jsp
          • tajo-storage/tajo-storage-hbase/src/main/proto/StorageFragmentProtos.proto
          • tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
          • CHANGES
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java
          • tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
          • tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java
          • tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testCATS.result
          • tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
          • tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
          • tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java
          • tajo-core/src/main/resources/webapps/admin/index.jsp
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testInsertIntoUsingPut.result
          • tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AbstractHBaseAppender.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java
          • tajo-common/src/main/java/org/apache/tajo/util/ReflectionUtil.java
          • tajo-docs/src/main/sphinx/storage_plugin.rst
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java
          • tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AddSortForInsertRewriter.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java
          • tajo-storage/tajo-storage-common/src/main/resources/storage-default.json
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java
          • tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java
          • tajo-storage/tajo-storage-common/pom.xml
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
          • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/InsertIntoHook.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
          • tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/PartitionedTableScanNode.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
          • tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
          • tajo-storage/tajo-storage-hbase/pom.xml
          • tajo-core/src/test/resources/results/TestTajoCli/testDescTableForNestedSchema.result
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseStorageManager.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
          • tajo-common/src/main/java/org/apache/tajo/QueryVars.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testCTAS.result
          • tajo-docs/src/main/sphinx/table_management/tablespaces.rst
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileStorageManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/postgresql/postgresql.xml
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
          • tajo-docs/src/main/sphinx/table_management/table_overview.rst
          • tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java
          • tajo-storage/tajo-storage-hdfs/pom.xml
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java
          • tajo-docs/src/main/sphinx/table_management.rst
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
          • tajo-core/src/test/resources/results/TestTajoCli/testDescTable.result
          • tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/mariadb.xml
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseFragment.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/mysql.xml
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/SortedInsertRewriter.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java
          • tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
          • tajo-docs/src/main/sphinx/index.rst
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java
          • tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java
          • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java
          Show
          hudson Hudson added a comment - FAILURE: Integrated in Tajo-master-build #737 (See https://builds.apache.org/job/Tajo-master-build/737/ ) TAJO-1616 : Implement TablespaceManager to load Tablespaces. (hyunsik: rev d0f37012faf1a8a3259210287e9bc7762ce62001) tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/DistributedQueryHookManager.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-dist/src/main/conf/storage-site.json.template tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/derby.xml tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/StoreTableNode.java tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/oracle/oracle.xml tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java tajo-plan/src/main/proto/Plan.proto tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/ColumnMapping.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java tajo-core/src/main/resources/webapps/admin/catalogview.jsp tajo-storage/tajo-storage-hbase/src/main/proto/StorageFragmentProtos.proto tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java CHANGES tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java tajo-core/src/test/resources/results/TestHBaseTable/testCATS.result tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java tajo-core/src/main/resources/webapps/admin/index.jsp tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java tajo-core/src/test/resources/results/TestHBaseTable/testInsertIntoUsingPut.result tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AbstractHBaseAppender.java tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java tajo-common/src/main/java/org/apache/tajo/util/ReflectionUtil.java tajo-docs/src/main/sphinx/storage_plugin.rst tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AddSortForInsertRewriter.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java tajo-storage/tajo-storage-common/src/main/resources/storage-default.json tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java tajo-storage/tajo-storage-common/pom.xml tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/InsertIntoHook.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/PartitionedTableScanNode.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java tajo-storage/tajo-storage-hbase/pom.xml tajo-core/src/test/resources/results/TestTajoCli/testDescTableForNestedSchema.result tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseStorageManager.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java tajo-common/src/main/java/org/apache/tajo/QueryVars.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java tajo-core/src/test/resources/results/TestHBaseTable/testCTAS.result tajo-docs/src/main/sphinx/table_management/tablespaces.rst tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileStorageManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/postgresql/postgresql.xml tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-docs/src/main/sphinx/table_management/table_overview.rst tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java tajo-storage/tajo-storage-hdfs/pom.xml tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java tajo-docs/src/main/sphinx/table_management.rst tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java tajo-core/src/test/resources/results/TestTajoCli/testDescTable.result tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/mariadb.xml tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseFragment.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/mysql.xml tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/SortedInsertRewriter.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java tajo-docs/src/main/sphinx/index.rst tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java
          Hide
          hudson Hudson added a comment -

          ABORTED: Integrated in Tajo-master-CODEGEN-build #376 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/376/)
          TAJO-1616: Implement TablespaceManager to load Tablespaces. (hyunsik: rev d0f37012faf1a8a3259210287e9bc7762ce62001)

          • tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
          • tajo-storage/tajo-storage-common/pom.xml
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/postgresql/postgresql.xml
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
          • tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java
          • tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/derby.xml
          • tajo-storage/tajo-storage-common/src/main/resources/storage-default.json
          • tajo-storage/tajo-storage-hdfs/pom.xml
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/mysql.xml
          • tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
          • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
          • tajo-core/src/main/resources/webapps/admin/index.jsp
          • tajo-docs/src/main/sphinx/table_management.rst
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/mariadb.xml
          • tajo-plan/src/main/proto/Plan.proto
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java
          • tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AbstractHBaseAppender.java
          • tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
          • tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
          • tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/StoreTableNode.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/DistributedQueryHookManager.java
          • tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java
          • tajo-dist/src/main/conf/storage-site.json.template
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testCTAS.result
          • tajo-core/src/test/resources/results/TestTajoCli/testDescTable.result
          • tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/ColumnMapping.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java
          • tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java
          • tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
          • tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testInsertIntoUsingPut.result
          • tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
          • tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java
          • tajo-common/src/main/java/org/apache/tajo/QueryVars.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
          • tajo-docs/src/main/sphinx/table_management/tablespaces.rst
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
          • tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java
          • tajo-docs/src/main/sphinx/index.rst
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java
          • tajo-core/src/main/resources/webapps/admin/catalogview.jsp
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseStorageManager.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
          • tajo-docs/src/main/sphinx/table_management/table_overview.rst
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
          • tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java
          • tajo-core/src/test/resources/results/TestTajoCli/testDescTableForNestedSchema.result
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java
          • tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
          • tajo-common/src/main/java/org/apache/tajo/util/ReflectionUtil.java
          • tajo-catalog/tajo-catalog-server/src/main/resources/schemas/oracle/oracle.xml
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileStorageManager.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java
          • CHANGES
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
          • tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testCATS.result
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AddSortForInsertRewriter.java
          • tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/InsertIntoHook.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/SortedInsertRewriter.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java
          • tajo-storage/tajo-storage-hbase/src/main/proto/StorageFragmentProtos.proto
          • tajo-plan/src/main/java/org/apache/tajo/plan/logical/PartitionedTableScanNode.java
          • tajo-docs/src/main/sphinx/storage_plugin.rst
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseFragment.java
          • tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java
          • tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java
          • tajo-storage/tajo-storage-hbase/pom.xml
          Show
          hudson Hudson added a comment - ABORTED: Integrated in Tajo-master-CODEGEN-build #376 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/376/ ) TAJO-1616 : Implement TablespaceManager to load Tablespaces. (hyunsik: rev d0f37012faf1a8a3259210287e9bc7762ce62001) tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java tajo-storage/tajo-storage-common/pom.xml tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/postgresql/postgresql.xml tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/rules/PartitionedTableRewriter.java tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/derby/derby.xml tajo-storage/tajo-storage-common/src/main/resources/storage-default.json tajo-storage/tajo-storage-hdfs/pom.xml tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mysql/mysql.xml tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-core/src/main/resources/webapps/admin/index.jsp tajo-docs/src/main/sphinx/table_management.rst tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/mariadb/mariadb.xml tajo-plan/src/main/proto/Plan.proto tajo-core/src/test/java/org/apache/tajo/engine/query/TestTablePartitions.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestColumnMapping.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/ScanNode.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestCTASQuery.java tajo-algebra/src/main/java/org/apache/tajo/algebra/CreateTable.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AbstractHBaseAppender.java tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/StoreTableNode.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/DistributedQueryHookManager.java tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java tajo-dist/src/main/conf/storage-site.json.template tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java tajo-core/src/test/resources/results/TestHBaseTable/testCTAS.result tajo-core/src/test/resources/results/TestTajoCli/testDescTable.result tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/ColumnMapping.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java tajo-cli/src/main/java/org/apache/tajo/cli/tsql/commands/DescTableCommand.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java tajo-common/src/main/java/org/apache/tajo/util/FileUtil.java tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeDeserializer.java tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-core/src/test/resources/results/TestHBaseTable/testInsertIntoUsingPut.result tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestTableDesc.java tajo-common/src/main/java/org/apache/tajo/QueryVars.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java tajo-docs/src/main/sphinx/table_management/tablespaces.rst tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java tajo-docs/src/main/sphinx/index.rst tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/InsertNode.java tajo-core/src/main/resources/webapps/admin/catalogview.jsp tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseStorageManager.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java tajo-docs/src/main/sphinx/table_management/table_overview.rst tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java tajo-catalog/tajo-catalog-drivers/tajo-hive/src/main/java/org/apache/tajo/catalog/store/HiveCatalogStore.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java tajo-core/src/test/resources/results/TestTajoCli/testDescTableForNestedSchema.result tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java tajo-common/src/main/java/org/apache/tajo/util/ReflectionUtil.java tajo-catalog/tajo-catalog-server/src/main/resources/schemas/oracle/oracle.xml tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileStorageManager.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java tajo-plan/src/main/java/org/apache/tajo/plan/serder/LogicalNodeSerializer.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/TableDesc.java tajo-plan/src/main/java/org/apache/tajo/plan/logical/CreateTableNode.java CHANGES tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-core/src/test/resources/results/TestHBaseTable/testCATS.result tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/AddSortForInsertRewriter.java tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/DDLBuilder.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/InsertIntoHook.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/SortedInsertRewriter.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestInsertQuery.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestCreateTable.java tajo-storage/tajo-storage-hbase/src/main/proto/StorageFragmentProtos.proto tajo-plan/src/main/java/org/apache/tajo/plan/logical/PartitionedTableScanNode.java tajo-docs/src/main/sphinx/storage_plugin.rst tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseFragment.java tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java tajo-storage/tajo-storage-hbase/pom.xml
          Hide
          hudson Hudson added a comment -

          ABORTED: Integrated in Tajo-master-CODEGEN-build #378 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/378/)
          TAJO-1616: Implement TablespaceManager to load Tablespaces. (missed commits) (hyunsik: rev 90afaa468080d4f743ed2eee8326a38995900807)

          • tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java
          • tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForAggregateFunction.result
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlan.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForTable.result
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
          • tajo-core/src/main/resources/webapps/admin/index.jsp
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java
          • tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java
          • tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
          • tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
          • tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetClusterDetails.result
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java
          • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
          • tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
          • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowsExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
          • .travis.yml
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
          • tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testInsertValues1.result
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
          • tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
          • tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java
          Show
          hudson Hudson added a comment - ABORTED: Integrated in Tajo-master-CODEGEN-build #378 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/378/ ) TAJO-1616 : Implement TablespaceManager to load Tablespaces. (missed commits) (hyunsik: rev 90afaa468080d4f743ed2eee8326a38995900807) tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForAggregateFunction.result tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlan.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForTable.result tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-core/src/main/resources/webapps/admin/index.jsp tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetClusterDetails.result tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowsExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java .travis.yml tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java tajo-core/src/test/resources/results/TestHBaseTable/testInsertValues1.result tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in Tajo-master-build #738 (See https://builds.apache.org/job/Tajo-master-build/738/)
          TAJO-1616: Implement TablespaceManager to load Tablespaces. (missed commits) (hyunsik: rev 90afaa468080d4f743ed2eee8326a38995900807)

          • tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java
          • tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java
          • tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java
          • tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
          • tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java
          • tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java
          • tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java
          • tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetClusterDetails.result
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java
          • tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java
          • tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
          • tajo-core/src/main/resources/webapps/admin/index.jsp
          • tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java
          • tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java
          • tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java
          • tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java
          • tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java
          • tajo-core/src/test/resources/results/TestHBaseTable/testInsertValues1.result
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForTable.result
          • .travis.yml
          • tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowsExec.java
          • tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForAggregateFunction.result
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java
          • tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java
          • tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlan.java
          • tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java
          • tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java
          • tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in Tajo-master-build #738 (See https://builds.apache.org/job/Tajo-master-build/738/ ) TAJO-1616 : Implement TablespaceManager to load Tablespaces. (missed commits) (hyunsik: rev 90afaa468080d4f743ed2eee8326a38995900807) tajo-core/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultFileScanner.java tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestBSTIndex.java tajo-plan/src/main/java/org/apache/tajo/plan/util/PlannerUtil.java tajo-core/src/main/java/org/apache/tajo/master/exec/DDLExecutor.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/MergeScanner.java tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMasterTask.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RangeShuffleFileWriteExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/query/QueryContext.java tajo-core/src/main/java/org/apache/tajo/worker/LegacyTaskImpl.java tajo-core/src/main/java/org/apache/tajo/worker/TaskImpl.java tajo-core/src/test/java/org/apache/tajo/engine/query/TestHBaseTable.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestMergeScanner.java tajo-core/src/test/java/org/apache/tajo/ha/TestHAServiceHDFSImpl.java tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestNLJoinExec.java tajo-storage/tajo-storage-hbase/src/test/java/org/apache/tajo/storage/hbase/TestHBaseTableSpace.java tajo-core/src/main/java/org/apache/tajo/master/exec/QueryExecutor.java tajo-core/src/main/java/org/apache/tajo/querymaster/Stage.java tajo-core/src/main/java/org/apache/tajo/master/exec/prehook/CreateTableHook.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBasePutAppender.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorages.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterHashJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestLineReader.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestSortExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileSystems.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetClusterDetails.result tajo-core/src/main/java/org/apache/tajo/querymaster/Repartitioner.java tajo-core/src/test/java/org/apache/tajo/jdbc/TestResultSet.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterHashJoinExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestRightOuterMergeJoinExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/OldStorageManager.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestMergeJoinExec.java tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java tajo-core/src/main/resources/webapps/admin/index.jsp tajo-core/src/test/java/org/apache/tajo/master/TestExecutionBlockCursor.java tajo-common/src/main/java/org/apache/tajo/util/KeyValueSet.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/StoreTableExec.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/HashShuffleAppenderManager.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TableSpaceManager.java tajo-core/src/main/java/org/apache/tajo/querymaster/Query.java tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseScanner.java tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileAppender.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestDelimitedTextFile.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageProperty.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/FormatProperty.java tajo-core/src/test/resources/results/TestHBaseTable/testInsertValues1.result tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestFullOuterMergeJoinExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestCompressionStorages.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestLeftOuterHashJoinExec.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForTable.result .travis.yml tajo-core/src/test/java/org/apache/tajo/querymaster/TestKillQuery.java tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/InsertRowsExec.java tajo-core/src/test/resources/results/TestNonForwardQueryResultSystemScanner/testGetNextRowsForAggregateFunction.result tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ColPartitionStoreExec.java tajo-common/src/main/java/org/apache/tajo/storage/StorageConstants.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashSemiJoinExec.java tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestProgressExternalSortExec.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/index/TestSingleCSVFileBSTIndex.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/json/TestJsonSerDe.java tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestFileTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlan.java tajo-core/src/test/java/org/apache/tajo/BackendTestingUtil.java tajo-core/src/test/java/org/apache/tajo/storage/TestRowFile.java tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestHashAntiJoinExec.java

            People

            • Assignee:
              hyunsik Hyunsik Choi
              Reporter:
              hyunsik Hyunsik Choi
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development