Browse Source

remove all bucket metadata

fix https://github.com/chrislusf/seaweedfs/issues/2118
pull/2128/head
Chris Lu 4 years ago
parent
commit
9357911a95
  1. 3
      weed/filer/abstract_sql/abstract_sql_store.go
  2. 2
      weed/filer/filer_delete_entry.go
  3. 1
      weed/filer/filerstore.go
  4. 8
      weed/filer/filerstore_wrapper.go

3
weed/filer/abstract_sql/abstract_sql_store.go

@ -32,6 +32,9 @@ type AbstractSqlStore struct {
dbsLock sync.Mutex
}
func (store *AbstractSqlStore) CanDropWholeBucket() bool {
return store.SupportBucketTable
}
func (store *AbstractSqlStore) OnBucketCreation(bucket string) {
store.dbsLock.Lock()
defer store.dbsLock.Unlock()

2
weed/filer/filer_delete_entry.go

@ -71,7 +71,7 @@ func (f *Filer) doBatchDeleteFolderMetaAndData(ctx context.Context, entry *Entry
lastFileName := ""
includeLastFile := false
if !isDeletingBucket {
if !isDeletingBucket || !f.Store.CanDropWholeBucket() {
for {
entries, _, err := f.ListDirectoryEntries(ctx, entry.FullPath, lastFileName, includeLastFile, PaginationSize, "", "", "")
if err != nil {

1
weed/filer/filerstore.go

@ -43,4 +43,5 @@ type FilerStore interface {
type BucketAware interface {
OnBucketCreation(bucket string)
OnBucketDeletion(bucket string)
IsDropBucketAltogether() bool
}

8
weed/filer/filerstore_wrapper.go

@ -23,6 +23,7 @@ type VirtualFilerStore interface {
AddPathSpecificStore(path string, storeId string, store FilerStore)
OnBucketCreation(bucket string)
OnBucketDeletion(bucket string)
CanDropWholeBucket() bool
}
type FilerStoreWrapper struct {
@ -42,6 +43,13 @@ func NewFilerStoreWrapper(store FilerStore) *FilerStoreWrapper {
}
}
func (fsw *FilerStoreWrapper) CanDropWholeBucket() bool {
if ba, ok := fsw.defaultStore.(BucketAware); ok {
return ba.IsDropBucketAltogether()
}
return false
}
func (fsw *FilerStoreWrapper) OnBucketCreation(bucket string) {
for _, store := range fsw.storeIdToStore {
if ba, ok := store.(BucketAware); ok {

Loading…
Cancel
Save