43
43
MemTableSize : defaultCacheSize / 4 ,
44
44
MaxOpenFiles : 4096 ,
45
45
MaxConcurrentCompactions : 1 ,
46
+ Sync : true ,
46
47
}
47
48
)
48
49
@@ -51,6 +52,7 @@ type Database struct {
51
52
pebbleDB * pebble.DB
52
53
closed bool
53
54
openIterators set.Set [* iter ]
55
+ writeOptions * pebble.WriteOptions
54
56
}
55
57
56
58
type Config struct {
@@ -61,6 +63,7 @@ type Config struct {
61
63
MemTableSize uint64 `json:"memTableSize"`
62
64
MaxOpenFiles int `json:"maxOpenFiles"`
63
65
MaxConcurrentCompactions int `json:"maxConcurrentCompactions"`
66
+ Sync bool `json:"sync"`
64
67
}
65
68
66
69
// TODO: Add metrics
@@ -93,6 +96,7 @@ func New(file string, configBytes []byte, log logging.Logger, _ prometheus.Regis
93
96
return & Database {
94
97
pebbleDB : db ,
95
98
openIterators : set.Set [* iter ]{},
99
+ writeOptions : & pebble.WriteOptions {Sync : cfg .Sync },
96
100
}, err
97
101
}
98
102
@@ -167,7 +171,7 @@ func (db *Database) Put(key []byte, value []byte) error {
167
171
return database .ErrClosed
168
172
}
169
173
170
- return updateError (db .pebbleDB .Set (key , value , pebble . Sync ))
174
+ return updateError (db .pebbleDB .Set (key , value , db . writeOptions ))
171
175
}
172
176
173
177
func (db * Database ) Delete (key []byte ) error {
@@ -178,7 +182,7 @@ func (db *Database) Delete(key []byte) error {
178
182
return database .ErrClosed
179
183
}
180
184
181
- return updateError (db .pebbleDB .Delete (key , pebble . Sync ))
185
+ return updateError (db .pebbleDB .Delete (key , db . writeOptions ))
182
186
}
183
187
184
188
func (db * Database ) Compact (start []byte , end []byte ) error {
0 commit comments