Skip to content

v0.8.3

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Oct 16:28
· 236 commits to main since this release
fd0c9e0

This release contains a significant update in GatewayD with #344. In this PR, substantial enhancements have been made to the GatewayD server by removing the gnet/v2 library used for serving incoming client connections and replacing it with the net package from the Go standard library. These changes are aimed at improving performance, reliability, and fixing various race conditions within the codebase.

This change introduced bidirectional communication between the server and clients. Previously, GatewayD used to wait for the client to initiate a query and then waited for the server to send a response, which created a dependency on the client to trigger the server's response. With the new system, the server and clients are polled independently, enabling features such as LISTEN and NOTIFY from PostgreSQL. Query cancellation also works as expected now (#209).

Warning
The changes in this PR are backward-incompatible with previous version of GatewayD.

Changes to Configuration Parameters

The following configuration parameters have been removed from the server configuration, as they are no longer applicable:

multiCore: True
lockOSThread: False
loadBalancer: roundrobin
readBufferCap: 134217728
writeBufferCap: 134217728
socketRecvBuffer: 134217728
socketSendBuffer: 134217728
reuseAddress: True
reusePort: True
tcpKeepAlive: 3s # duration
tcpNoDelay: True

Performance Benchmark Results

A small timing benchmark was conducted using psql, where a query involving a table with 158369 records across 17 columns was executed that resulted in 67736218 bytes (~67.73 MB) data transfer from server to the client. The results showed a significant improvement in data transfer speed. Specifically, data transfer time was increased by approximately 41% compared to direct connection to database, and an impressive 91% reduction in comparison to version 0.8.2 (with the original overhead of 132%). More performance benchmarks will be conducted later (#342).

What's Changed

  • Refactor server and proxy and remove gnet/v2 by @mostafa in #344

Full Changelog: v0.8.2...v0.8.3