You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2015/04/15 21:49:49 UTC

[15/50] [abbrv] incubator-lens git commit: LENS-440 : Remove rewriter cache and synchronization on rewrite in JDBCDruver (amareshwari)

LENS-440 : Remove rewriter cache and synchronization on rewrite in JDBCDruver (amareshwari)


Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/4a5c02a0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/4a5c02a0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/4a5c02a0

Branch: refs/heads/current-release-line
Commit: 4a5c02a02ae85ecab7d52d9f59c6238923d41593
Parents: 56c5813
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Tue Mar 31 10:03:09 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Tue Mar 31 10:03:09 2015 +0530

----------------------------------------------------------------------
 .../lens/driver/jdbc/ColumnarSQLRewriter.java   |  2 +-
 .../org/apache/lens/driver/jdbc/JDBCDriver.java | 36 +++++++-------------
 2 files changed, 14 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/4a5c02a0/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
----------------------------------------------------------------------
diff --git a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
index d5dc9a3..749e0dd 100644
--- a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
+++ b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/ColumnarSQLRewriter.java
@@ -1026,7 +1026,7 @@ public class ColumnarSQLRewriter implements QueryRewriter {
    * @see org.apache.lens.server.api.query.QueryRewriter#rewrite(java.lang.String, org.apache.hadoop.conf.Configuration)
    */
   @Override
-  public synchronized String rewrite(String query, Configuration conf, HiveConf metastoreConf) throws LensException {
+  public String rewrite(String query, Configuration conf, HiveConf metastoreConf) throws LensException {
     this.query = query;
     StringBuilder mergedQuery;
     rewrittenQuery.setLength(0);

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/4a5c02a0/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
index 92f7b96..2346b52 100644
--- a/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
+++ b/lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java
@@ -82,9 +82,6 @@ public class JDBCDriver implements LensDriver {
   /** The query context map. */
   private ConcurrentHashMap<QueryHandle, JdbcQueryContext> queryContextMap;
 
-  /** The rewriter cache. */
-  private ConcurrentHashMap<Class<? extends QueryRewriter>, QueryRewriter> rewriterCache;
-
   /** The conf. */
   private Configuration conf;
 
@@ -418,7 +415,6 @@ public class JDBCDriver implements LensDriver {
    */
   protected void init(Configuration conf) throws LensException {
     queryContextMap = new ConcurrentHashMap<QueryHandle, JdbcQueryContext>();
-    rewriterCache = new ConcurrentHashMap<Class<? extends QueryRewriter>, QueryRewriter>();
     asyncQueryPool = Executors.newCachedThreadPool(new ThreadFactory() {
       @Override
       public Thread newThread(Runnable runnable) {
@@ -466,23 +462,18 @@ public class JDBCDriver implements LensDriver {
    * @return the query rewriter
    * @throws LensException the lens exception
    */
-  protected synchronized QueryRewriter getQueryRewriter() throws LensException {
+  protected QueryRewriter getQueryRewriter() throws LensException {
     QueryRewriter rewriter;
     Class<? extends QueryRewriter> queryRewriterClass = conf.getClass(JDBC_QUERY_REWRITER_CLASS,
       DummyQueryRewriter.class, QueryRewriter.class);
-    if (rewriterCache.containsKey(queryRewriterClass)) {
-      rewriter = rewriterCache.get(queryRewriterClass);
-    } else {
-      try {
-        rewriter = queryRewriterClass.newInstance();
-        LOG.info("Initialized :" + queryRewriterClass);
-      } catch (Exception e) {
-        LOG.error("Unable to create rewriter object", e);
-        throw new LensException(e);
-      }
-      rewriter.init(conf);
-      rewriterCache.put(queryRewriterClass, rewriter);
+    try {
+      rewriter = queryRewriterClass.newInstance();
+      LOG.info("Initialized :" + queryRewriterClass);
+    } catch (Exception e) {
+      LOG.error("Unable to create rewriter object", e);
+      throw new LensException(e);
     }
+    rewriter.init(conf);
     return rewriter;
   }
 
@@ -633,7 +624,7 @@ public class JDBCDriver implements LensDriver {
       throw new NullPointerException("Null driver query for " + pContext.getUserQuery());
     }
     boolean validateThroughPrepare = pContext.getDriverConf(this).getBoolean(JDBC_VALIDATE_THROUGH_PREPARE,
-        DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE);
+      DEFAULT_JDBC_VALIDATE_THROUGH_PREPARE);
     if (validateThroughPrepare) {
       PreparedStatement stmt = null;
       // Estimate queries need to get connection from estimate pool to make sure
@@ -686,7 +677,7 @@ public class JDBCDriver implements LensDriver {
       tmpConf.set(JDBC_POOL_IDLE_TIME, getKeyOrFallBack(tmpConf, getEstimateKey(JDBC_POOL_IDLE_TIME),
         JDBC_POOL_IDLE_TIME));
       tmpConf.set(JDBC_MAX_STATEMENTS_PER_CONNECTION, getKeyOrFallBack(tmpConf,
-          getEstimateKey(JDBC_MAX_STATEMENTS_PER_CONNECTION), JDBC_MAX_STATEMENTS_PER_CONNECTION));
+        getEstimateKey(JDBC_MAX_STATEMENTS_PER_CONNECTION), JDBC_MAX_STATEMENTS_PER_CONNECTION));
       tmpConf.set(JDBC_GET_CONNECTION_TIMEOUT, getKeyOrFallBack(tmpConf,
         getEstimateKey(JDBC_GET_CONNECTION_TIMEOUT), JDBC_GET_CONNECTION_TIMEOUT));
 
@@ -710,7 +701,7 @@ public class JDBCDriver implements LensDriver {
   }
 
   private final Map<QueryPrepareHandle, PreparedStatement> preparedQueries =
-      new HashMap<QueryPrepareHandle, PreparedStatement>();
+    new HashMap<QueryPrepareHandle, PreparedStatement>();
 
   /**
    * Internally prepare the query
@@ -905,9 +896,8 @@ public class JDBCDriver implements LensDriver {
    * @throws LensException the lens exception
    */
   @Override
-  public void registerForCompletionNotification(
-    QueryHandle handle, long timeoutMillis, QueryCompletionListener listener)
-    throws LensException {
+  public void registerForCompletionNotification(QueryHandle handle, long timeoutMillis,
+    QueryCompletionListener listener) throws LensException {
     checkConfigured();
     getQueryContext(handle).setListener(listener);
   }