You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Sudheesh Katkam (JIRA)" <ji...@apache.org> on 2016/05/10 20:34:13 UTC

[jira] [Resolved] (DRILL-4170) how many concurrent users can be supported

     [ https://issues.apache.org/jira/browse/DRILL-4170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sudheesh Katkam resolved DRILL-4170.
------------------------------------
    Resolution: Fixed

Fixed in [e4725ea|https://github.com/apache/drill/commit/e4725ea53dce58499974be93b3da87388e7df51c] through DRILL-3714.

> how many concurrent users can be supported
> ------------------------------------------
>
>                 Key: DRILL-4170
>                 URL: https://issues.apache.org/jira/browse/DRILL-4170
>             Project: Apache Drill
>          Issue Type: Test
>          Components: Client - JDBC
>    Affects Versions: 1.3.0
>         Environment: drill1.3 JDBC SCRIPTS
>            Reporter: david_hudavy
>             Fix For: 1.7.0
>
>
> import java.sql.Connection;
> import java.sql.Statement;
> import java.sql.DriverManager;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.util.ArrayList;
> import java.util.List;
> public class MultiThreadTestDrill {
>  
>     public static void main(String[] args) throws InterruptedException {
>         int threadNum = 200;
>         long tStart = System.currentTimeMillis();
>         
>         System.out.println(Thread.currentThread().getName() + "START");
>         for (int ii = 0; ii < threadNum; ii++) {
>             Thread t = new WorkerThread();
>             t.start();
>         }
>         while (true) {
>             if (!WorkerThread.hasThreadRunning()) {
>                 break;
>             }
>             Thread.sleep(500);
>         }
>         
>         System.out.println(Thread.currentThread().getName() + "END");
>         long tEnd = System.currentTimeMillis();
>         System.out.println("TOTAL TIME:" + (tEnd - tStart)/1000 + "seconds");
>     }
>  
>     public static class WorkerThread extends Thread {
>         private static List<Thread> runningThreads = new ArrayList<Thread>();
>  
>         public WorkerThread() {
>         }
>  
>         @Override
>         public void run() {
>             regist(this);
>             // PRINT START INFORMATION
>             System.out.println(Thread.currentThread().getName() + "START...");
>             connectToDrill();
>             unRegist(this);
>             // PRINT END INFORMATION
>             System.out.println(Thread.currentThread().getName() + "END");
>         }
>  
>         public void regist(Thread t) {
>             synchronized (runningThreads) {
>                 runningThreads.add(t);
>             }
>         }
>  
>         public void unRegist(Thread t) {
>             synchronized (runningThreads) {
>                 runningThreads.remove(t);
>             }
>         }
>  
>         public static boolean hasThreadRunning() {
>             return (runningThreads.size() > 0);
>         }
>          
>         private void connectToDrill() {
>             // TODO Auto-generated method stub
>             
>             String driver = "org.apache.drill.jdbc.Driver";
>             
>             String url = "jdbc:drill:drillbit=localhost";            
>             String sql = "SELECT count(*) FROM mysql.datamart.StaticInf";
>             try {
>                 
>                 Class.forName(driver);
>                 // connect drill
>                 Connection conn = (Connection) DriverManager.getConnection(url);
>                 if (!conn.isClosed())
>                     System.out.println("Succeeded connecting to the Drill!");
>                 
>                 Statement statement = (Statement) conn.createStatement();
>                  
>                 ResultSet rs = statement.executeQuery(sql);
>                 
>                 while (rs.next()) {
>                     System.out.println(rs.getString(1));
>                 }
>                 rs.close();
>                 conn.close();
>             } catch (ClassNotFoundException e) {
>                 System.out.println("Sorry,can`t find the Driver!");
>                 e.printStackTrace();
>             } catch (SQLException e) {
>                 e.printStackTrace();
>             } catch (Exception e) {
>                 e.printStackTrace();
>             }
>         }
>     }
> }
> mysql.datamart.StaticInf has 2144781 rows



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)