transport: when using write buffer pooling, use input size instead of size*2 (#6983)

This commit is contained in:
Raghav Jhavar 2024-02-15 15:07:19 -08:00 committed by GitHub
parent 3ae77e6528
commit 3c2a44dca3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 5 additions and 10 deletions

View File

@ -154,9 +154,7 @@ func WithSharedWriteBuffer(val bool) DialOption {
} }
// WithWriteBufferSize determines how much data can be batched before doing a // WithWriteBufferSize determines how much data can be batched before doing a
// write on the wire. The corresponding memory allocation for this buffer will // write on the wire. The default value for this buffer is 32KB.
// be twice the size to keep syscalls low. The default value for this buffer is
// 32KB.
// //
// Zero or negative values will disable the write buffer such that each write // Zero or negative values will disable the write buffer such that each write
// will be on underlying connection. Note: A Send call may not directly // will be on underlying connection. Note: A Send call may not directly

View File

@ -418,10 +418,9 @@ func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, sharedWriteBu
return f return f
} }
func getWriteBufferPool(writeBufferSize int) *sync.Pool { func getWriteBufferPool(size int) *sync.Pool {
writeBufferMutex.Lock() writeBufferMutex.Lock()
defer writeBufferMutex.Unlock() defer writeBufferMutex.Unlock()
size := writeBufferSize * 2
pool, ok := writeBufferPoolMap[size] pool, ok := writeBufferPoolMap[size]
if ok { if ok {
return pool return pool

View File

@ -249,11 +249,9 @@ func SharedWriteBuffer(val bool) ServerOption {
} }
// WriteBufferSize determines how much data can be batched before doing a write // WriteBufferSize determines how much data can be batched before doing a write
// on the wire. The corresponding memory allocation for this buffer will be // on the wire. The default value for this buffer is 32KB. Zero or negative
// twice the size to keep syscalls low. The default value for this buffer is // values will disable the write buffer such that each write will be on underlying
// 32KB. Zero or negative values will disable the write buffer such that each // connection. Note: A Send call may not directly translate to a write.
// write will be on underlying connection.
// Note: A Send call may not directly translate to a write.
func WriteBufferSize(s int) ServerOption { func WriteBufferSize(s int) ServerOption {
return newFuncServerOption(func(o *serverOptions) { return newFuncServerOption(func(o *serverOptions) {
o.writeBufferSize = s o.writeBufferSize = s