|
|
@ -3,7 +3,10 @@ package filer2 |
|
|
|
import ( |
|
|
|
"context" |
|
|
|
"errors" |
|
|
|
"time" |
|
|
|
|
|
|
|
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/stats" |
|
|
|
"github.com/chrislusf/seaweedfs/weed/util" |
|
|
|
) |
|
|
|
|
|
|
@ -45,16 +48,28 @@ func (fsw *FilerStoreWrapper) Initialize(configuration util.Configuration) error |
|
|
|
} |
|
|
|
|
|
|
|
func (fsw *FilerStoreWrapper) InsertEntry(ctx context.Context, entry *Entry) error { |
|
|
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "insert").Inc() |
|
|
|
start := time.Now() |
|
|
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "insert").Observe(time.Since(start).Seconds()) }() |
|
|
|
|
|
|
|
filer_pb.BeforeEntrySerialization(entry.Chunks) |
|
|
|
return fsw.actualStore.InsertEntry(ctx, entry) |
|
|
|
} |
|
|
|
|
|
|
|
func (fsw *FilerStoreWrapper) UpdateEntry(ctx context.Context, entry *Entry) error { |
|
|
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "update").Inc() |
|
|
|
start := time.Now() |
|
|
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "update").Observe(time.Since(start).Seconds()) }() |
|
|
|
|
|
|
|
filer_pb.BeforeEntrySerialization(entry.Chunks) |
|
|
|
return fsw.actualStore.UpdateEntry(ctx, entry) |
|
|
|
} |
|
|
|
|
|
|
|
func (fsw *FilerStoreWrapper) FindEntry(ctx context.Context, fp FullPath) (entry *Entry, err error) { |
|
|
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "find").Inc() |
|
|
|
start := time.Now() |
|
|
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "find").Observe(time.Since(start).Seconds()) }() |
|
|
|
|
|
|
|
entry, err = fsw.actualStore.FindEntry(ctx, fp) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
@ -64,10 +79,18 @@ func (fsw *FilerStoreWrapper) FindEntry(ctx context.Context, fp FullPath) (entry |
|
|
|
} |
|
|
|
|
|
|
|
func (fsw *FilerStoreWrapper) DeleteEntry(ctx context.Context, fp FullPath) (err error) { |
|
|
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "delete").Inc() |
|
|
|
start := time.Now() |
|
|
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "delete").Observe(time.Since(start).Seconds()) }() |
|
|
|
|
|
|
|
return fsw.actualStore.DeleteEntry(ctx, fp) |
|
|
|
} |
|
|
|
|
|
|
|
func (fsw *FilerStoreWrapper) ListDirectoryEntries(ctx context.Context, dirPath FullPath, startFileName string, includeStartFile bool, limit int) ([]*Entry, error) { |
|
|
|
stats.FilerStoreCounter.WithLabelValues(fsw.actualStore.GetName(), "list").Inc() |
|
|
|
start := time.Now() |
|
|
|
defer func() { stats.FilerStoreHistogram.WithLabelValues(fsw.actualStore.GetName(), "list").Observe(time.Since(start).Seconds()) }() |
|
|
|
|
|
|
|
entries, err := fsw.actualStore.ListDirectoryEntries(ctx, dirPath, startFileName, includeStartFile, limit) |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|