[MDEV-15756] innodb engine status missing some IO statistics Created: 2018-04-02  Updated: 2021-04-26  Resolved: 2021-04-26

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.2.2, 10.3.0
Fix Version/s: 10.5.10

Type: Bug Priority: Minor
Reporter: Jonathan Nicol Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: upstream
Environment:

linux


Issue Links:
Relates
relates to MDEV-16264 Implement a common work queue for Inn... Closed

 Description   

Somewhere between 10.1 and 10.2, some of the IO statistics in 'show engine innodb status' stopped working.

In 10.1:

Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0

in 10.2:

Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] ,
ibuf aio reads:, log i/o's:, sync i/o's:

As you can see there are some zeroes missing.

thanks
Jonathan



 Comments   
Comment by Marko Mäkelä [ 2018-05-30 ]

The same issue appears to exist in MySQL since version 5.7.8, where some code was refactored. Either the function AIO::print_segment_info() or its caller should display m_n_reserved.

Comment by Marko Mäkelä [ 2021-04-26 ]

It looks like this got broken further in MDEV-16264 (10.5.0). We now have totally useless output in os_aio_print(), which I will remove:

diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index fc3da454d2d..48d7c69319f 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -4160,10 +4160,6 @@ os_aio_print(FILE*	file)
 	time_t		current_time;
 	double		time_elapsed;
 
-	fputs("Pending normal aio reads:", file);
-
-
-	putc('\n', file);
 	current_time = time(NULL);
 	time_elapsed = 0.001 + difftime(current_time, os_last_printout);
 

As part of MDEV-16264, other output (along with class AIO) was already removed in MariaDB Server 10.5.0.

Because there have not been any further votes or comments for this issue, I think that it is fine to remove the code.

Asynchronous reads are only used by read-ahead. Asynchronous writes are being used for data file pages, and it could hurt performance to accurately track the number of pending operations, which is not interesting anyway. I suspect that the output had originally been added in order to be able to diagnose some hangs. I do not remember any I/O hangs lately.

Comment by Marko Mäkelä [ 2021-04-26 ]

Most of the statistics were already removed in MariaDB 10.5.0. 10.5.10 will remove the string "Pending normal aio reads" that was not followed by any numbers.

Generated at Thu Feb 08 08:23:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.