Bug #77612 Ensure ACC scans are also properly queued
Submitted: 3 Jul 2015 16:47 Modified: 14 Jan 2016 22:39
Reporter: Mikael Ronström Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:7.4.7 OS:Any
Assigned to: CPU Architecture:Any

[3 Jul 2015 16:47] Mikael Ronström
Description:
ACC scans were queued but in the category of range scans, this could easily lead to starting an
ACC scan when in fact ACC had no free slots for scans. So we create a separate queue for ACC scans.

How to repeat:
Found by review of bug#20981491

Suggested fix:
Add queue for ACC scans and also integrate that into ndbinfo table
[14 Jan 2016 22:39] Jon Stephens
Documented fix in the NDB 7.4.8 changelog, as follows:

     * Incompatible Change: The changes listed here follow up
       and build further on work done in MySQL Cluster NDB 7.4.7
       to improve handling of local checkpoints (LCPs) under
       conditions of insert overload:

          + Changes have been made in the minimum values for a
            number of parameters applying to data buffers for
            backups and LCPs. These parameters, listed here, can
            no longer be set so as to make the system impossible
            to run:
               o BackupDataBufferSize
                 (http://dev.mysql.com/doc/refman/5.6/en/mysql-c
                 luster-ndbd-definition.html#ndbparam-ndbd-backu
                 pdatabuffersize): minimum increased from 0 to
                 2M.
               o BackupLogBufferSize
                 (http://dev.mysql.com/doc/refman/5.6/en/mysql-c
                 luster-ndbd-definition.html#ndbparam-ndbd-backu
                 plogbuffersize): minimum increased from 0 to
                 2M.
               o BackupWriteSize
                 (http://dev.mysql.com/doc/refman/5.6/en/mysql-c
                 luster-ndbd-definition.html#ndbparam-ndbd-backu
                 pwritesize): minimum increased from 2K to 32K.
               o BackupMaxWriteSize
                 (http://dev.mysql.com/doc/refman/5.6/en/mysql-c
                 luster-ndbd-definition.html#ndbparam-ndbd-backu
                 pmaxwritesize): minimum increased from 2K to
                 256K.
            In addition, the BackupMemory
            (http://dev.mysql.com/doc/refman/5.6/en/mysql-cluste
            r-ndbd-definition.html#ndbparam-ndbd-backupmemory)
            data node parameter is now deprecated and subject to
            removal in a future version of MySQL Cluster. Use
            BackupDataBufferSize and BackupLogBufferSize
            instead.

          + When a backup was unsuccessful due to insufficient
            resourcesa subsequent retry worked only for those
            parts of the backup that worked in the same thread,
            since delayed signals are only supported in the same
            thread. Delayed signals are no longer sent to other
            threads in such cases.

          + An instance of an internal list object used in
            searching for queued scans was not actually
            destroyed before calls to functions that could
            manipulate the base object used to create it.

          + ACC scans were queued in the category of range
            scans, which could lead to starting an ACC scan when
            DBACC had no free slots for scans. We fix this by
            implementing a separate queue for ACC scans.

       References: See also Bug #76742, Bug #20904721.

NB: This also fixes BUG#77597, BUG#76890.

Closed.