drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5015) As per documentation, when issuing a list of drillbits in the connection string, we always attempt to connect only to the first one
Date Thu, 10 Nov 2016 09:03:01 GMT

    [ https://issues.apache.org/jira/browse/DRILL-5015?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15653517#comment-15653517
] 

ASF GitHub Bot commented on DRILL-5015:
---------------------------------------

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

    https://github.com/apache/drill/pull/648#discussion_r87351643
  
    --- Diff: exec/java-exec/src/test/java/org/apache/drill/exec/client/DrillClientSystemTest.java
---
    @@ -73,4 +77,90 @@ public void testSubmitPlanTwoNodes() throws Exception {
         }
         client.close();
       }
    +
    +  @Test
    +  public void testPopulateEndpointsList() throws Exception{
    +
    +    ArrayList<DrillbitEndpoint> endpointsList = new ArrayList<>();
    +    String drillBitConnection;
    +    DrillClient client = new DrillClient();
    +    DrillbitEndpoint endpoint;
    +    Iterator<DrillbitEndpoint> endpointIterator;
    +
    +
    +    // Test with single drillbit ip
    +    drillBitConnection = "10.10.100.161";
    +    client.populateEndpointsList(endpointsList, drillBitConnection);
    +    endpoint = endpointsList.iterator().next();
    +    assert(endpointsList.size() == 1);
    +    assert(endpoint.getAddress().equalsIgnoreCase(drillBitConnection));
    +    assert(endpoint.getUserPort() == client.getConfig().getInt(ExecConstants.INITIAL_USER_PORT));
    +
    +    // Test with single drillbit ip:port
    +    endpointsList.clear();
    +    drillBitConnection = "10.10.100.161:5000";
    +    String[] ipAndPort = drillBitConnection.split(":");
    +    client.populateEndpointsList(endpointsList, drillBitConnection);
    +    assert(endpointsList.size() == 1);
    +
    +    endpoint = endpointsList.iterator().next();
    +    assert(endpoint.getAddress().equalsIgnoreCase(ipAndPort[0]));
    +    assert(endpoint.getUserPort() == Integer.parseInt(ipAndPort[1]));
    +
    +    // Test with multiple drillbit ip
    +    endpointsList.clear();
    +    drillBitConnection = "10.10.100.161,10.10.100.162";
    +    client.populateEndpointsList(endpointsList, drillBitConnection);
    +    assert(endpointsList.size() == 2);
    +
    +    endpointIterator = endpointsList.iterator();
    +    endpoint = endpointIterator.next();
    +    assert(endpoint.getAddress().equalsIgnoreCase("10.10.100.161"));
    +    assert(endpoint.getUserPort() == client.getConfig().getInt(ExecConstants.INITIAL_USER_PORT));
    --- End diff --
    
    Fixed


> As per documentation, when issuing a list of drillbits in the connection string, we always
attempt to connect only to the first one
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-5015
>                 URL: https://issues.apache.org/jira/browse/DRILL-5015
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - JDBC
>    Affects Versions: 1.8.0, 1.9.0
>            Reporter: Sorabh Hamirwasia
>            Assignee: Sudheesh Katkam
>
> When trying to connect to a Drill cluster by specifying more than 1 drillbits to connect
to, we always attempt to connect to only the first drillbit.
> As an example, we tested against a pair of drillbits, but we always connect to the first
entry in the CSV list by querying for the 'current' drillbit. The remaining entries are never
attempted.
> [root@pssc-60 agileSqlPerfTests]# /opt/mapr/drill/drill-1.8.0/bin/sqlline  -u  "jdbc:drill:schema=dfs.tmp;drillbit=pssc-61:31010,pssc-62:31010"
-f whereAmI.q  | grep -v logback
> 1/1          select * from sys.drillbits where `current`;
> +-----------------+------------+---------------+------------+----------+
> |    hostname     | user_port  | control_port  | data_port  | current  |
> +-----------------+------------+---------------+------------+----------+
> | pssc-61.qa.lab  | 31010      | 31011         | 31012      | true     |
> +-----------------+------------+---------------+------------+----------+
> 1 row selected (0.265 seconds)
> Closing: org.apache.drill.jdbc.impl.DrillConnectionImpl
> apache drill 1.8.0 
> "a little sql for your nosql"
> This property is meant for use by clients when not wanting to overload the ZK for fetching
a list of existing Drillbits, but the behaviour doesn't match the documentation. 
> [Making a Direct Drillbit Connection | https://drill.apache.org/docs/using-the-jdbc-driver/#using-the-jdbc-url-format-for-a-direct-drillbit-connection
]
> We need to randomly shuffle between this list and If an entry in the shuffled list is
unreachable, we need to try for the next entry in the list.



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

Mime
View raw message