Skip to content

Commit

Permalink
Disable writes sync in persistent cache (elastic#21754)
Browse files Browse the repository at this point in the history
With default configuration, every write is synced to disk. For the
persistent cache, Beats not need to guarantee that everything is on disk,
as the data can be recovered from the source endpoints, but the database
was not being properly closed, so there could happen that most of the
recent data was lost if the beat is stopped.
Now, the processors can close their resources, so the database is
properly closed in an normal shutdown, so we can go on without syncs on
writes, what gives a much better performance.

(cherry picked from commit 85b95ee)
  • Loading branch information
jsoriano committed Oct 14, 2020
1 parent 15649c6 commit 425198a
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions x-pack/libbeat/persistentcache/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@ func newStore(logger *logp.Logger, dir, name string) (*Store, error) {
// Opinionated options for the use of badger as a store for metadata caches in Beats.
options := badger.DefaultOptions(dbPath)
options.Logger = badgerLogger{logger.Named("badger")}
// TODO: Disabling sync writes gives better performance, and data loss wouldn't
// be a problem for caches. But we are not properly closing processors yet, so let
// sync on writes by now.
// options.SyncWrites = false
options.SyncWrites = false

db, err := badger.Open(options)
if err != nil {
Expand Down

0 comments on commit 425198a

Please sign in to comment.