diff --git a/go/store/nbs/file_manifest.go b/go/store/nbs/file_manifest.go index bb217865a55..d1ed2574f61 100644 --- a/go/store/nbs/file_manifest.go +++ b/go/store/nbs/file_manifest.go @@ -85,7 +85,7 @@ func MaybeMigrateFileManifest(ctx context.Context, dir string) (bool, error) { return nil } - _, err = updateWithChecker(ctx, dir, syncFlush, check, contents.lock, contents, nil) + _, err = updateWithChecker(ctx, dir, check, contents.lock, contents, nil) if err != nil { return false, err @@ -95,9 +95,9 @@ func MaybeMigrateFileManifest(ctx context.Context, dir string) (bool, error) { } // getFileManifest makes a new file manifest. -func getFileManifest(ctx context.Context, dir string, mode updateMode) (m manifest, err error) { +func getFileManifest(ctx context.Context, dir string) (m manifest, err error) { lock := fslock.New(filepath.Join(dir, lockFileName)) - m = fileManifest{dir: dir, mode: mode, lock: lock} + m = fileManifest{dir: dir, lock: lock} var f *os.File f, err = openIfExists(filepath.Join(dir, manifestFileName)) @@ -123,17 +123,9 @@ func getFileManifest(ctx context.Context, dir string, mode updateMode) (m manife return } -type updateMode byte - -const ( - asyncFlush updateMode = 0 - syncFlush updateMode = 1 -) - type fileManifest struct { lock *fslock.Lock dir string - mode updateMode } // Returns nil if path does not exist @@ -190,7 +182,7 @@ func (fm fileManifest) Update(ctx context.Context, lastLock hash.Hash, newConten return nil } - return updateWithChecker(ctx, fm.dir, fm.mode, checker, lastLock, newContents, writeHook) + return updateWithChecker(ctx, fm.dir, checker, lastLock, newContents, writeHook) } func (fm fileManifest) UpdateGCGen(ctx context.Context, lastLock hash.Hash, newContents manifestContents, stats *Stats, writeHook func() error) (mc manifestContents, err error) { @@ -207,7 +199,7 @@ func (fm fileManifest) UpdateGCGen(ctx context.Context, lastLock hash.Hash, newC } }() - return updateWithChecker(ctx, fm.dir, fm.mode, updateGCGenManifestCheck, lastLock, newContents, writeHook) + return updateWithChecker(ctx, fm.dir, updateGCGenManifestCheck, lastLock, newContents, writeHook) } // parseV5Manifest parses the v5 manifest from the Reader given. Assumes the first field (the manifest version and @@ -369,7 +361,7 @@ func parseIfExists(_ context.Context, dir string, readHook func() error) (exists } // updateWithChecker updates the manifest if |validate| is satisfied, callers must hold the file lock. -func updateWithChecker(_ context.Context, dir string, mode updateMode, validate manifestChecker, lastLock hash.Hash, newContents manifestContents, writeHook func() error) (mc manifestContents, err error) { +func updateWithChecker(_ context.Context, dir string, validate manifestChecker, lastLock hash.Hash, newContents manifestContents, writeHook func() error) (mc manifestContents, err error) { var tempManifestPath string // Write a temporary manifest file, to be renamed over manifestFileName upon success. @@ -394,10 +386,8 @@ func updateWithChecker(_ context.Context, dir string, mode updateMode, validate return "", ferr } - if mode == syncFlush { - if ferr = temp.Sync(); ferr != nil { - return "", ferr - } + if ferr = temp.Sync(); ferr != nil { + return "", ferr } return temp.Name(), nil @@ -473,10 +463,8 @@ func updateWithChecker(_ context.Context, dir string, mode updateMode, validate return manifestContents{}, err } - if mode == syncFlush { - if err = file.SyncDirectoryHandle(dir); err != nil { - return manifestContents{}, err - } + if err = file.SyncDirectoryHandle(dir); err != nil { + return manifestContents{}, err } return newContents, nil diff --git a/go/store/nbs/file_manifest_test.go b/go/store/nbs/file_manifest_test.go index 9cb5d51830f..83e918b6bc8 100644 --- a/go/store/nbs/file_manifest_test.go +++ b/go/store/nbs/file_manifest_test.go @@ -41,7 +41,7 @@ import ( func makeFileManifestTempDir(t *testing.T) fileManifest { dir, err := os.MkdirTemp("", "") require.NoError(t, err) - fm, err := getFileManifest(context.Background(), dir, asyncFlush) + fm, err := getFileManifest(context.Background(), dir) require.NoError(t, err) return fm.(fileManifest) } @@ -106,7 +106,7 @@ func TestFileManifestUpdateEmpty(t *testing.T) { assert.True(upstream.root.IsEmpty()) assert.Empty(upstream.specs) - fm2, err := getFileManifest(context.Background(), fm.dir, asyncFlush) // Open existent, but empty manifest + fm2, err := getFileManifest(context.Background(), fm.dir) // Open existent, but empty manifest require.NoError(t, err) exists, upstream, err := fm2.ParseIfExists(context.Background(), stats, nil) require.NoError(t, err) diff --git a/go/store/nbs/journal.go b/go/store/nbs/journal.go index 59688df22a8..c405558b43a 100644 --- a/go/store/nbs/journal.go +++ b/go/store/nbs/journal.go @@ -633,7 +633,7 @@ func (jm *journalManifest) Update(ctx context.Context, lastLock hash.Hash, newCo } return nil } - return updateWithChecker(ctx, jm.dir, syncFlush, checker, lastLock, newContents, writeHook) + return updateWithChecker(ctx, jm.dir, checker, lastLock, newContents, writeHook) } // UpdateGCGen implements manifest. @@ -649,7 +649,7 @@ func (jm *journalManifest) UpdateGCGen(ctx context.Context, lastLock hash.Hash, t1 := time.Now() defer func() { stats.WriteManifestLatency.SampleTimeSince(t1) }() - return updateWithChecker(ctx, jm.dir, syncFlush, updateGCGenManifestCheck, lastLock, newContents, writeHook) + return updateWithChecker(ctx, jm.dir, updateGCGenManifestCheck, lastLock, newContents, writeHook) } func updateGCGenManifestCheck(upstream, contents manifestContents) error { diff --git a/go/store/nbs/store.go b/go/store/nbs/store.go index 49559e429c7..70c8a496b2c 100644 --- a/go/store/nbs/store.go +++ b/go/store/nbs/store.go @@ -656,7 +656,7 @@ func newLocalStore(ctx context.Context, nbfVerStr string, dir string, memTableSi return nil, fmt.Errorf("cannot create NBS store for directory containing chunk journal: %s", dir) } - m, err := getFileManifest(ctx, dir, asyncFlush) + m, err := getFileManifest(ctx, dir) if err != nil { return nil, err } diff --git a/go/store/nbs/store_test.go b/go/store/nbs/store_test.go index d5e2790ceb8..f8908ff8598 100644 --- a/go/store/nbs/store_test.go +++ b/go/store/nbs/store_test.go @@ -48,7 +48,7 @@ func makeTestLocalStore(t *testing.T, maxTableFiles int) (st *NomsBlockStore, no require.NoError(t, err) // create a v5 manifest - fm, err := getFileManifest(ctx, nomsDir, asyncFlush) + fm, err := getFileManifest(ctx, nomsDir) require.NoError(t, err) _, err = fm.Update(ctx, hash.Hash{}, manifestContents{ nbfVers: constants.FormatDoltString,