Skip to content

feat: add a buffer_stats() method on Connection to return allocated read/write buffer sizes#4163

Open
matt-goroff wants to merge 3 commits intolaunchbadge:mainfrom
matt-goroff:mg/addBufferStatsForConnections
Open

feat: add a buffer_stats() method on Connection to return allocated read/write buffer sizes#4163
matt-goroff wants to merge 3 commits intolaunchbadge:mainfrom
matt-goroff:mg/addBufferStatsForConnections

Conversation

@matt-goroff
Copy link

Live connections maintain read and write buffers for incoming and outgoing data. These buffers start at a default 8kb, but grow as more space is required. An earlier PR added support for shrinking these buffer back down to 8kb (see discussion), but there is otherwise no observability or tuning that can be done.

This PR adds a buffer_stats() method on Connection which returns an optional struct containing the currently allocated capacity of the read and write buffers. This gives clients some observability into buffer allocations, which can be used for monitoring/metrics or even for strategic use of shrink_buffers(). Connection implementations can optionally implement this feature, where the default implementation just returns None to indicate there are no stats available. This PR provides an implementation for the Postgres and MySQL connections. SQLite returns None as it does not use network buffers.

Is this a breaking change?

No. A default implementation is provided for all connections.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant