add distributed lock manager

This commit is contained in:
chrislu
2023-06-25 00:58:21 -07:00
parent 0515014149
commit 3fd659df2a
13 changed files with 1178 additions and 192 deletions

View File

@@ -3,6 +3,7 @@ package weed_server
import (
"context"
"fmt"
"github.com/seaweedfs/seaweedfs/weed/cluster/lock_manager"
"net/http"
"os"
"sync"
@@ -94,6 +95,9 @@ type FilerServer struct {
// track known metadata listeners
knownListenersLock sync.Mutex
knownListeners map[int32]int32
// distributed lock manager
dlm *lock_manager.LockManager
}
func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption) (fs *FilerServer, err error) {
@@ -181,6 +185,9 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
fs.filer.Shutdown()
})
fs.dlm = lock_manager.NewLockManager()
fs.filer.LockRing.SetTakeSnapshotCallback(fs.OnDlmChangeSnapshot)
return fs, nil
}