On 06/28/2016 11:39 AM, Louis Munro wrote:


On Jun 28, 2016, at 13:58 , Matt Kereczman <[email protected]
<mailto:[email protected]>> wrote:

You might want to make sure your version of 8.4.5 includes this commit:
http://git.drbd.org/drbd-8.4.git/commit/27ed4f3ca752b9bcc37d16edbb2791e626ab203d


Interesting.
I thought my problem was that the output buffer was full:

That could still be true. Looking at the "Send-Q" (via 'netstat' or 'ss') on DRBD's TCP socket, or the IO state flags (flag #5) in '/proc/drbd', while IO is blocking would probably tell you.

IO flags: https://www.drbd.org/en/doc/users-guide-84/ch-admin#s-io-flags


"DRBD’s protocol A is asynchronous, but the writing application will
block as soon as the socket output buffer is full (see the sndbuf-size
option in drbd.conf(5)). In that event, the writing application has to
wait until some of the data written runs off through a possibly small
bandwidth network link."

So if I understand this correctly, the issue could be that my primary
hadn’t received the ACK for the block and was rewriting it (as is
frequent for a database).
Is there any way I could ascertain whether that is the case before I
recompile and reinstall (which is no trivial matter for that database)?


I would just verify that the version you have installed is newer than the commit with the fix. The, "GIT-hash:", in '/proc/drbd' is the commit from which the source was compiled.

Hope that is helpful.

--
: Matt Kereczman
: [email protected]
: +1 (503) 573-1262 x205
: LINBIT | Keeping the Digital World Running
: DRBD -- Heartbeat -- Corosync -- Pacemaker
_______________________________________________
drbd-user mailing list
[email protected]
http://lists.linbit.com/mailman/listinfo/drbd-user

Reply via email to