Main differences compared to Innodb and MyISAM

Comments

2 comments

  • Official comment
    Avatar
    Johan

    HI,

    The optimal value depends on how many operations should be possible to be executed concurrently and also depends on the number of data nodes, the number of mysql servers, the number of concurrent connections to the database, how many records those can update etc etc. There is a cost in RAM for each operation record.

    However, it is not feasible to do large/huge transactions on NDB (this is also for all distributed databases in general).

    All in all, when you have huge update/delete/multi-insert transactions you should apply them in batches. In the Delete case you would apply a  "LIMIT", e.g:

    delete from radacct where acctinputoctets=0 and acctoutputoctets=0 LIMIT 10000;

    and then delete until done.

    The upper limit for the LIMIT is basically MaxNoOfConcurrentOperations, but deleting/updating huge chunks of data will cause a lot of pressure on different subsystems inside NDB (such as redo log, and then keep a number undo records until the trans is committed or rolled back.

     

     

     

     

  • Avatar
    Urgen Sherpa

    MaxNoOfConcurrentOperations=150000
    MaxNoOfConcurrentTransactions=150000
    MaxNoOfLocalOperations=150000

     I have above parameters in config.ini, when i try to delete rows in a table i get below error

    mysql> delete from radacct where acctinputoctets=0 and acctoutputoctets=0;
    ERROR 1297 (HY000): Got temporary error 1217 'Out of operation records in local data manager (increase MaxNoOfLocalOperations)' from NDBCLUSTER.

    How to determine the optimum value for maxnooflocaloperations ?

Please sign in to leave a comment.

Powered by Zendesk