Subject Nagle Algorithm
Author
Nagle Algorithm


I can confirm that the Nagle Algorithm has a huge performance impact on Firebird SQL due to delayed acknowledgements.

I see that NoNagle can be Enabled on the server by setting True in the Firebird Server Config file.

I can disable TCP No Delay on the Server in Windows.





However, I do not see anywhere to adjust TCP No Delay on the Firebird Client side.  I see that most programs can specify to open a socket to a server with the socket No Delay option.  I can't even find this in the FBClient.dll.

From my testing, it is critical that this is handled on both the server side as well as the client side in order for Microsoft's intentional 300ms to 200ms delay to be avoided.

Otherwise the only other option is simply to Pad all the packets so they don't get caught in this messy algorithm.

Any advice would be greatly appreciated.

Regards,

Tray