Skip to content

Commit 7f6264f

Browse files
authored
Allow configuring the in-memory buffer of FileReadWriter (#30)
1 parent a629bb2 commit 7f6264f

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

cache/readwriters/file.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@ import (
1111

1212
const OwnerReadWrite = 0o600
1313

14-
func NewFileReadWriter(filename string) (*FileReadWriter, error) {
14+
// NewFileReadWriter creates a new file-based read-writer.
15+
// The `bufferSize` controls the in-memory buffer of the underlying
16+
// bufio.Writer.
17+
func NewFileReadWriter(filename string, bufferSize int) (*FileReadWriter, error) {
1518
f, err := os.OpenFile(filename, os.O_RDWR|os.O_APPEND|os.O_CREATE, OwnerReadWrite)
1619
if err != nil {
1720
return nil, fmt.Errorf("failed to open file for disk read-writer: %v", err)
1821
}
1922
return &FileReadWriter{
2023
f: f,
21-
b: bufio.NewReadWriter(bufio.NewReader(f), bufio.NewWriter(f)),
24+
b: bufio.NewReadWriter(bufio.NewReader(f), bufio.NewWriterSize(f, bufferSize)),
2225
}, nil
2326
}
2427

cache/readwriters/file_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestFileReadWriter(t *testing.T) {
1515
r := require.New(t)
1616

1717
filename := "delete.me"
18-
readWriter, err := NewFileReadWriter(filename)
18+
readWriter, err := NewFileReadWriter(filename, 4096)
1919
r.NoError(err)
2020

2121
defer func() {
@@ -62,7 +62,7 @@ func makeLabel(s string) []byte {
6262
}
6363

6464
func TestConsistentEOF(t *testing.T) {
65-
file, err := NewFileReadWriter(filepath.Join(t.TempDir(), "test"))
65+
file, err := NewFileReadWriter(filepath.Join(t.TempDir(), "test"), 4096)
6666
t.Cleanup(func() { file.Close() })
6767
require.NoError(t, err)
6868
slice := SliceReadWriter{}

0 commit comments

Comments
 (0)