Re: Insert large longtest failed on NDB
Hi Eric
Short answer, you do need to increase MaxNoOfConcurrentOperations. Your example insert need something like 37591 operations and the default is 32768 operations.
Longer answer:
In Ndb blobs are split into parts, and each part is inserted on its own row in an Ndb internal blob table, each such blob part adds an operation to the transaction.
LONGTEXT columns uses 13948 bytes per part, and your insert will add 37589 (512*1024*1024/13948) operations to your transaction only for the text column value then there is the operation for main row and yet one extra for the text column.
Also every unique key defined on table adds an operation per row, in your example there is no unique keys and no extra operations due to that.
If one has cascading foreign keys one need to consider the cascaded operations too, not relevant in your example.
The default value for MaxNoOfConcurrentOperations is 32768 and your example transaction needs more than that.
All row accesses in a transaction will add to concurrent operations, plus extra operations as above for blob and text columns and unique and foreign keys for every row.
When mysql server needs to fetch new auto increment values there may be a concurrent transaction with an operation.
Regards,
Mauritz
Subject
Views
Written By
Posted
840
November 03, 2022 11:27AM
Re: Insert large longtest failed on NDB
380
November 03, 2022 05:55PM
292
November 04, 2022 01:31PM
309
November 04, 2022 04:18PM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.