Bug #104397 Half 64KB is not 16KB (in innodb_segment_reserve_factor doc).
Submitted: 23 Jul 2021 13:21 Modified: 31 Jul 2021 16:18
Reporter: Jean-François Gagné Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[23 Jul 2021 13:21] Jean-François Gagné
Description:
Hi,

in the documentation page of "File Space Management", sub section "Configuring the Percentage of Reserved File Segment Pages" [1], we can read:

> The maximum row length is slightly less than half a database page for 4KB, 8KB, 16KB, and 32KB innodb_page_size settings. For example, the maximum row length is slightly less than 8KB for the default 16KB InnoDB page size. For 64KB pages, the maximum row length is slightly less than 16KB.

[1]: https://dev.mysql.com/doc/refman/8.0/en/innodb-file-space.html#innodb-config-reserved-file...

I guess we should read below, because half of 64 is 32 and not 16:

> For 64KB pages, the maximum row length is slightly less than 32KB.

Many thanks for looking into this,

Jean-François Gagné

How to repeat:
N/A because documentation bug.
[23 Jul 2021 13:36] MySQL Verification Team
Hello Jean-François,

Thank you for the report!

regards,
Umesh
[31 Jul 2021 15:47] Daniel Price
Posted by developer:
 
The referenced text was revised as follows:

"For for 4KB, 8KB, 16KB, and 32KB innodb_page_size settings, the maximum
row length is slightly less than half a database page size. For example,
the maximum row length is slightly less than 8KB for the default 16KB
InnoDB page size. For a 64KB innodb_page_size setting, the maximum row
length is slightly less than 16KB."

Thank you for the bug report.
[31 Jul 2021 16:18] Jean-François Gagné
I think the text is still confusing, and it might have been right from the beginning.

The confusion is that the text is talking about the row size for pages up to 32K (as half the page size), give and example, and then talk about the row size of 64K pages being a little less than 16K.  If reading too quick, we might miss that 64K is not in the 1st sentence and think, like I did, that 16K row size for 64K page is a mistake as it is not half.

I would suggest to rewrite as as follow:

The maximum row length is slightly less than half a database page for
4KB, 8KB, 16KB, and 32KB innodb_page_size settings, and slightly less than 25% of a database page for 64KB innodb_page_size settings. For example, the
maximum row length is slightly less than 8KB for the default 16KB InnoDB
page size. For 64KB pages, the maximum row length is slightly less than
16KB.

Or as follow:

Pages of 64KB do not behave the same way as pages of less than 64KB.  The maximum row length is slightly less than half a database page for 4KB, 8KB, 16KB, and 32KB innodb_page_size settings. For example, the maximum row length is slightly less than 8KB for the default 16KB InnoDB page size. For 64KB pages, the maximum row length is slightly less than 16KB.

Thanks.