Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-7060

Increase UNIV_PAGE_SIZE_MAX to 64KB for row_format=compressed

    Details

      Description

      https://github.com/facebook/mysql-5.6/commit/df321e63c8743b1610d416628c20f4699e448d7e

      MySQL 5.6 already has support for configurable page size so bumping up
      the max is all that is required for this support, unlike in 5.1.

      Unlike the other allowable page sizes, the extent size was increased to
      2MB or 4MB in order to keep the descriptor array small enough to fit on a page.
      Another option was to remove the unused XDES_CLEAN_BIT from the array but
      that solution didn't work for a key block size of 1KB. Also, increasing
      the extent size keeps the assert in in buf_dblwr_init that
      srv_doublewrite_batch_size is < 2 * TRX_SYS_DOUBLEWRITE_BLOCK_SIZE quiet
      so there was no need to reduce the batch size.

      Also, at page sizes above 16KB, the offset stored in the dense directory
      of compressed pages will exceed the 14 bits allocated for it by default.
      Thus, 32KB or 64K pages increase the slot size to 3 bytes and give a full 2 bytes for the offset.

      Because UNIV_PAGE_SIZE has a type now ((ulint) srv__page_size) some precompile assertions
      in page0zip won't work anymore. Change those to runtime assertions.

      This task will allow > 16K pages also for row_format=compressed

        Gliffy Diagrams

          Attachments

            Activity

            There are no comments yet on this issue.

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                jplindst Jan Lindström
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: