From f76af93c210584fb9c059bff875060e720c6004d Mon Sep 17 00:00:00 2001 From: Artemiy Ryabinkov Date: Thu, 8 Aug 2019 13:41:51 +0300 Subject: [PATCH 1/2] Increase buffer size to 8KB Signed-off-by: Artemiy Ryabinkov --- chunkreader.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chunkreader.go b/chunkreader.go index 36304fd5..c45b75aa 100644 --- a/chunkreader.go +++ b/chunkreader.go @@ -39,7 +39,7 @@ func New(r io.Reader) *ChunkReader { // NewConfig creates and a new ChunkReader for r configured by config. func NewConfig(r io.Reader, config Config) (*ChunkReader, error) { if config.MinBufLen == 0 { - config.MinBufLen = 4096 + config.MinBufLen = 8192 } return &ChunkReader{ From e204afcc8c18b630476abe8e28032fe2b5762825 Mon Sep 17 00:00:00 2001 From: Artemiy Ryabinkov Date: Thu, 8 Aug 2019 13:43:26 +0300 Subject: [PATCH 2/2] Add explanation for default buffer size Signed-off-by: Artemiy Ryabinkov --- chunkreader.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/chunkreader.go b/chunkreader.go index c45b75aa..afea1c52 100644 --- a/chunkreader.go +++ b/chunkreader.go @@ -39,6 +39,10 @@ func New(r io.Reader) *ChunkReader { // NewConfig creates and a new ChunkReader for r configured by config. func NewConfig(r io.Reader, config Config) (*ChunkReader, error) { if config.MinBufLen == 0 { + // By historical reasons Postgres currently has 8KB send buffer inside, + // so here we want to have at least the same size buffer. + // @see https://github.com/postgres/postgres/blob/249d64999615802752940e017ee5166e726bc7cd/src/backend/libpq/pqcomm.c#L134 + // @see https://www.postgresql.org/message-id/0cdc5485-cb3c-5e16-4a46-e3b2f7a41322%40ya.ru config.MinBufLen = 8192 }