phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cristian Armaselu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-956) Connection properties ignored
Date Tue, 29 Apr 2014 18:02:17 GMT

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

Cristian Armaselu commented on PHOENIX-956:
-------------------------------------------

That's fine. We can use couple cached connection for long running/big data chunks and another
set for small more transaction like activities.

> Connection properties ignored
> -----------------------------
>
>                 Key: PHOENIX-956
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-956
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.0.0
>         Environment: Win 7
>            Reporter: Cristian Armaselu
>            Assignee: Samarth Jain
>
> Connection opened as:
>             Properties connectionProperties = new Properties();
>             connectionProperties.setProperty(QueryServices.MAX_MUTATION_SIZE_ATTRIB,"10000000");
>             connectionProperties.setProperty(QueryServices.IMMUTABLE_ROWS_ATTRIB,"10000000");
>             connection = DriverManager.getConnection("jdbc:phoenix:ulvdtlchd01:2181",connectionProperties);
> Executing:
> preparedStatement = connection.prepareStatement("upsert into cristi_test(id,name,other)
values(?,?,?)");
> for (int i = 0; i < 10000000; i++) {
>                 preparedStatement.setString(1, "AAAA" + i);
>                 preparedStatement.setString(2, "BBBB" + i);
>                 preparedStatement.setString(3, "cccc" + i);
>                 preparedStatement.execute();
> }
> Getting:
> java.lang.IllegalArgumentException: MutationState size of 500001 is bigger than max allowed
size of 500000
> 	at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:114)
> 	at org.apache.phoenix.execute.MutationState.join(MutationState.java:163)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:227)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:185)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:146)
> 	at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(PhoenixPreparedStatement.java:151)
> Because:
> In PhoenixConnection constructor :
> this.info = info == null ? new Properties() : new Properties(info);
> info passed to the constructor is size 3
> the above is not copying the properties so the below is executed
>         if (this.info.isEmpty() && tenantId == null) {
>             this.services = services;
> since this.info.isEmpty() is true
> That means the passed info connection properties are ignored and not wrapped in the DelegateConnectionQueryServices
which follows the other branch of the if above



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message