You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Batyrshin Alexander <0x...@gmail.com> on 2018/09/19 23:48:03 UTC

MutationState size is bigger than maximum allowed number of bytes

I've tried to copy one table to other via UPSERT SELECT construction and got this errors:

Phoenix-4.14-hbase-1.4

0: jdbc:phoenix:> !autocommit on
Autocommit status: true
0: jdbc:phoenix:>
0: jdbc:phoenix:> UPSERT INTO TABLE_V2 ("c", "id", "gt")
. . . . . . . . > SELECT "c", "id", "gt" FROM TABLE;
Error: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes (state=LIM02,code=730)
java.sql.SQLException: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes
at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:377)
at org.apache.phoenix.execute.MutationState.join(MutationState.java:478)
at org.apache.phoenix.compile.MutatingParallelIteratorFactory$1.close(MutatingParallelIteratorFactory.java:98)
at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:104)
at org.apache.phoenix.iterate.ConcatResultIterator.peek(ConcatResultIterator.java:112)
at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:100)
at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
at org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
at org.apache.phoenix.trace.TracingIterator.next(TracingIterator.java:56)
at org.apache.phoenix.compile.UpsertCompiler$ClientUpsertSelectMutationPlan.execute(UpsertCompiler.java:1301)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
at sqlline.Commands.execute(Commands.java:822)
at sqlline.Commands.sql(Commands.java:732)
at sqlline.SqlLine.dispatch(SqlLine.java:813)
at sqlline.SqlLine.begin(SqlLine.java:686)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:291)

Config:

<property>
<name>phoenix.mutate.batchSize</name>
<value>200</value>
</property>
<property>
<name>phoenix.mutate.maxSize</name>
<value>250000</value>
</property>
<property>
<name>phoenix.mutate.maxSizeBytes</name>
<value>104857600000</value>
</property>

Also mentioned this at https://issues.apache.org/jira/browse/PHOENIX-4671

Re: MutationState size is bigger than maximum allowed number of bytes

Posted by Ankit Singhal <an...@gmail.com>.
<property>
<name>phoenix.mutate.maxSize</name>
<value>250000</value>
</property>


Try reducing the value of the above property, not sure if the size of your
row is more than 4MB(phoenix.mutate.maxSizeBytes/phoenix.mutate.maxSize) or
it's a bug or your configuration is not picked up.

Please raise a bug if changing the configuration didn't help.

Regards,
Ankit Singhal

On Thu, Sep 20, 2018 at 10:24 AM Batyrshin Alexander <0x...@gmail.com>
wrote:

> Nope, it was client side config.
> Thank you for response.
>
> On 20 Sep 2018, at 05:36, Jaanai Zhang <cl...@gmail.com> wrote:
>
> Are you configuring these on the server side?   Your “UPSERT SELECT”
> grammar will be executed on the server side.
>
> ----------------------------------------
>    Jaanai Zhang
>    Best regards!
>
>
>
> Batyrshin Alexander <0x...@gmail.com> 于2018年9月20日周四 上午7:48写道:
>
>> I've tried to copy one table to other via UPSERT SELECT construction and
>> got this errors:
>>
>> Phoenix-4.14-hbase-1.4
>>
>> 0: jdbc:phoenix:> !autocommit on
>> Autocommit status: true
>> 0: jdbc:phoenix:>
>> 0: jdbc:phoenix:> UPSERT INTO TABLE_V2 ("c", "id", "gt")
>> . . . . . . . . > SELECT "c", "id", "gt" FROM TABLE;
>> Error: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes (state=LIM02,code=730)
>> java.sql.SQLException: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes
>> at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
>> at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
>> at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:377)
>> at org.apache.phoenix.execute.MutationState.join(MutationState.java:478)
>> at org.apache.phoenix.compile.MutatingParallelIteratorFactory$1.close(MutatingParallelIteratorFactory.java:98)
>> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:104)
>> at org.apache.phoenix.iterate.ConcatResultIterator.peek(ConcatResultIterator.java:112)
>> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:100)
>> at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
>> at org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
>> at org.apache.phoenix.trace.TracingIterator.next(TracingIterator.java:56)
>> at org.apache.phoenix.compile.UpsertCompiler$ClientUpsertSelectMutationPlan.execute(UpsertCompiler.java:1301)
>> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
>> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
>> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
>> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
>> at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
>> at sqlline.Commands.execute(Commands.java:822)
>> at sqlline.Commands.sql(Commands.java:732)
>> at sqlline.SqlLine.dispatch(SqlLine.java:813)
>> at sqlline.SqlLine.begin(SqlLine.java:686)
>> at sqlline.SqlLine.start(SqlLine.java:398)
>> at sqlline.SqlLine.main(SqlLine.java:291)
>>
>>
>> Config:
>>
>> <property>
>> <name>phoenix.mutate.batchSize</name>
>> <value>200</value>
>> </property>
>> <property>
>> <name>phoenix.mutate.maxSize</name>
>> <value>250000</value>
>> </property>
>> <property>
>> <name>phoenix.mutate.maxSizeBytes</name>
>> <value>104857600000</value>
>> </property>
>>
>>
>> Also mentioned this at https://issues.apache.org/jira/browse/PHOENIX-4671
>>
>
>

Re: MutationState size is bigger than maximum allowed number of bytes

Posted by Batyrshin Alexander <0x...@gmail.com>.
Nope, it was client side config.
Thank you for response.

> On 20 Sep 2018, at 05:36, Jaanai Zhang <cl...@gmail.com> wrote:
> 
> Are you configuring these on the server side?   Your “UPSERT SELECT” grammar will be executed on the server side.
> 
> ----------------------------------------
>    Jaanai Zhang
>    Best regards!
> 
> 
> 
> Batyrshin Alexander <0x62ash@gmail.com <ma...@gmail.com>> 于2018年9月20日周四 上午7:48写道:
> I've tried to copy one table to other via UPSERT SELECT construction and got this errors:
> 
> Phoenix-4.14-hbase-1.4
> 
> 0: jdbc:phoenix:> !autocommit on
> Autocommit status: true
> 0: jdbc:phoenix:>
> 0: jdbc:phoenix:> UPSERT INTO TABLE_V2 ("c", "id", "gt")
> . . . . . . . . > SELECT "c", "id", "gt" FROM TABLE;
> Error: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes (state=LIM02,code=730)
> java.sql.SQLException: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes
> at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
> at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
> at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:377)
> at org.apache.phoenix.execute.MutationState.join(MutationState.java:478)
> at org.apache.phoenix.compile.MutatingParallelIteratorFactory$1.close(MutatingParallelIteratorFactory.java:98)
> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:104)
> at org.apache.phoenix.iterate.ConcatResultIterator.peek(ConcatResultIterator.java:112)
> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:100)
> at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
> at org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
> at org.apache.phoenix.trace.TracingIterator.next(TracingIterator.java:56)
> at org.apache.phoenix.compile.UpsertCompiler$ClientUpsertSelectMutationPlan.execute(UpsertCompiler.java:1301)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
> at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
> at sqlline.Commands.execute(Commands.java:822)
> at sqlline.Commands.sql(Commands.java:732)
> at sqlline.SqlLine.dispatch(SqlLine.java:813)
> at sqlline.SqlLine.begin(SqlLine.java:686)
> at sqlline.SqlLine.start(SqlLine.java:398)
> at sqlline.SqlLine.main(SqlLine.java:291)
> 
> Config:
> 
> <property>
> <name>phoenix.mutate.batchSize</name>
> <value>200</value>
> </property>
> <property>
> <name>phoenix.mutate.maxSize</name>
> <value>250000</value>
> </property>
> <property>
> <name>phoenix.mutate.maxSizeBytes</name>
> <value>104857600000</value>
> </property>
> 
> Also mentioned this at https://issues.apache.org/jira/browse/PHOENIX-4671 <https://issues.apache.org/jira/browse/PHOENIX-4671>

Re: MutationState size is bigger than maximum allowed number of bytes

Posted by Jaanai Zhang <cl...@gmail.com>.
Are you configuring these on the server side?   Your “UPSERT SELECT”
grammar will be executed on the server side.

----------------------------------------
   Jaanai Zhang
   Best regards!



Batyrshin Alexander <0x...@gmail.com> 于2018年9月20日周四 上午7:48写道:

> I've tried to copy one table to other via UPSERT SELECT construction and
> got this errors:
>
> Phoenix-4.14-hbase-1.4
>
> 0: jdbc:phoenix:> !autocommit on
> Autocommit status: true
> 0: jdbc:phoenix:>
> 0: jdbc:phoenix:> UPSERT INTO TABLE_V2 ("c", "id", "gt")
> . . . . . . . . > SELECT "c", "id", "gt" FROM TABLE;
> Error: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes (state=LIM02,code=730)
> java.sql.SQLException: ERROR 730 (LIM02): MutationState size is bigger than maximum allowed number of bytes
> at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:494)
> at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:150)
> at org.apache.phoenix.execute.MutationState.throwIfTooBig(MutationState.java:377)
> at org.apache.phoenix.execute.MutationState.join(MutationState.java:478)
> at org.apache.phoenix.compile.MutatingParallelIteratorFactory$1.close(MutatingParallelIteratorFactory.java:98)
> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:104)
> at org.apache.phoenix.iterate.ConcatResultIterator.peek(ConcatResultIterator.java:112)
> at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:100)
> at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
> at org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
> at org.apache.phoenix.trace.TracingIterator.next(TracingIterator.java:56)
> at org.apache.phoenix.compile.UpsertCompiler$ClientUpsertSelectMutationPlan.execute(UpsertCompiler.java:1301)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:408)
> at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
> at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
> at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1825)
> at sqlline.Commands.execute(Commands.java:822)
> at sqlline.Commands.sql(Commands.java:732)
> at sqlline.SqlLine.dispatch(SqlLine.java:813)
> at sqlline.SqlLine.begin(SqlLine.java:686)
> at sqlline.SqlLine.start(SqlLine.java:398)
> at sqlline.SqlLine.main(SqlLine.java:291)
>
>
> Config:
>
> <property>
> <name>phoenix.mutate.batchSize</name>
> <value>200</value>
> </property>
> <property>
> <name>phoenix.mutate.maxSize</name>
> <value>250000</value>
> </property>
> <property>
> <name>phoenix.mutate.maxSizeBytes</name>
> <value>104857600000</value>
> </property>
>
>
> Also mentioned this at https://issues.apache.org/jira/browse/PHOENIX-4671
>