[MDEV-14533] Provide information_schema tables using which hardware information can be obtained. Created: 2017-11-29  Updated: 2020-09-23  Resolved: 2018-03-21

Status: Closed
Project: MariaDB Server
Component/s: Plugins
Fix Version/s: 10.1.32, 10.2.14, 10.3.6

Type: Task Priority: Critical
Reporter: Johan Wikman Assignee: Alexey Botchkov
Resolution: Fixed Votes: 0
Labels: None

Attachments: Zip Archive information_schema_disks.zip    
Issue Links:
Blocks
blocks MXS-1453 MaxScale consider healthy a server wi... Closed
blocks MXS-1775 Use disk-space information when makin... Closed
Relates
relates to MDEV-18328 Make DISKS plugin check some privileg... Closed
relates to MDEV-15628 Document the INFORMATION_SCHEMA.DISKS... Closed
relates to MDEV-17380 innodb_flush_neighbors=ON should be i... Closed
Sprint: 10.1.32

 Description   

MaxScale should be able to react when some node of a cluster hits a disk-full situation.

For instance, if the master in a master-slave cluster hits a disk-full situation, MaxScale should promote some existing slave to master and remove the old master from the cluster. That way, a client connected to MaxScale would not necessarily detect anything special at all.

In order to do that, MaxScale must be able to detect that a disk-full situation has occurred. It's difficult and unreliable to do that using MariaDB itself, for instance, by trying to create a table and assuming it was a disk-full situation in case the creation fails or the attempt ends with a timeout. Further, that approach would not allow MaxScale to become aware of the situation before the disk actually becomes full.

A more reliable way would be to actually monitor the disk-space situation on the node and use that for the decision making, but arranging that is rather complex and fragile.

A robust solution would be if there were a pseudo table or pseudo tables in information_schema using which information about the node could be found out. For instance as follows:

MariaDB [information_schema]> select * from information_schema.system;
+------+--------+-----+
| CPUS | MEMORY | ... |
+---------------------+
| 4    | 4096   | ... |
+---------------------+
1 row in set (0.00 sec)
 
MariaDB [information_schema]> select * from information_schema.disks;
+------------+------------+----------+-----+
| Filesystem |  1K-blocks |     Used | ... |
+------------+------------+----------+-----+
| udev       |    8156512 |        0 |     |
| tmpfs      |    1635388 |     9820 | ... |
| /dev/sda3  |   47929956 | 28150612 |     |
| ...        |        ... |      ... |     |
+------------+------------+----------+-----+
10 rows in set (0.00 sec)

With this information available, MaxScale could automatically take corrective action in case the amount of used disk-space grows above, say, 90%.



 Comments   
Comment by Johan Wikman [ 2018-02-05 ]

Attached is a proof-of-concept implementation that has been built and tested with MariaDB 10.0.33.
information_schema_disks.zip

Comment by Alexey Botchkov [ 2018-03-21 ]

http://lists.askmonty.org/pipermail/commits/2018-March/012116.html

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