Port MDEV-156. Threadpool - add thd_wait_begin/thd_wait_end to the network IO functions

Bug #1159743 reported by Sergei Glushchenko
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MySQL Server
Unknown
Unknown
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
Medium
Sergei Glushchenko
5.1
Invalid
Undecided
Unassigned
5.5
Won't Fix
Medium
Unassigned
5.6
Fix Released
Medium
Sergei Glushchenko

Bug Description

Port MDEV-156 from MariaDB (threadpool improvement)
Certain types of workloads (large result sets, blobs, slow clients) can have longer waits on network io (socket reads and writes). Whenever server waits, this should be communicated to the threadpool, so it can start new query by either waking a waiting thread or sometimes creating a new one. IF threadpool does not know about blocking state of a thread, the performance will degrade.
In MySQL prior to 5.6 it is not possible to know whether socket read or write would wait. In 5.6, socket handling on Unixes was changed in VIO. Sockets IO is always non-blocking and reads or writes that would block wait with poll() for operation to finish.
The task is to add thd_wait_begin/thd_wait_end around these poll() calls.

Tags: upstream tp

Related branches

Revision history for this message
Alexey Kopytov (akopytov) wrote :

As the report suggests fixing this in server versions < 5.6 is not feasible (and it was only fixed in MariaDB 10.0).

tags: added: tp
tags: added: upstream
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1343

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.