mirror of
https://github.com/pgsty/minio.git
synced 2026-08-10 00:03:29 +03:00
More donut, cache, api cleanup
This commit is contained in:
@@ -25,10 +25,8 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/minio/minio/pkg/iodine"
|
||||
"github.com/minio/minio/pkg/storage/donut/trove"
|
||||
)
|
||||
|
||||
// donut struct internal data
|
||||
@@ -37,32 +35,6 @@ type donut struct {
|
||||
buckets map[string]bucket
|
||||
nodes map[string]node
|
||||
lock *sync.RWMutex
|
||||
cache cache
|
||||
}
|
||||
|
||||
// cache - local variables
|
||||
type cache struct {
|
||||
storedBuckets map[string]storedBucket
|
||||
lock *sync.RWMutex
|
||||
objects *trove.Cache
|
||||
multiPartObjects *trove.Cache
|
||||
maxSize uint64
|
||||
expiration time.Duration
|
||||
}
|
||||
|
||||
// storedBucket saved bucket
|
||||
type storedBucket struct {
|
||||
bucketMetadata BucketMetadata
|
||||
objectMetadata map[string]ObjectMetadata
|
||||
partMetadata map[string]PartMetadata
|
||||
multiPartSession map[string]multiPartSession
|
||||
}
|
||||
|
||||
// multiPartSession multipart session
|
||||
type multiPartSession struct {
|
||||
totalParts int
|
||||
uploadID string
|
||||
initiated time.Time
|
||||
}
|
||||
|
||||
// config files used inside Donut
|
||||
@@ -110,26 +82,17 @@ func NewDonut(donutName string, nodeDiskMap map[string][]string) (Donut, error)
|
||||
return nil, iodine.New(err, nil)
|
||||
}
|
||||
}
|
||||
d.cache.storedBuckets = make(map[string]storedBucket)
|
||||
d.cache.objects = trove.NewCache(maxSize, expiration)
|
||||
d.cache.multiPartObjects = trove.NewCache(0, time.Duration(0))
|
||||
|
||||
d.cache.objects.OnExpired = d.expiredObject
|
||||
d.cache.multiPartObjects.OnExpired = d.expiredPart
|
||||
|
||||
// set up cache expiration
|
||||
d.cache.objects.ExpireObjects(time.Second * 5)
|
||||
return d, nil
|
||||
}
|
||||
|
||||
// MakeBucket - make a new bucket
|
||||
func (dt donut) MakeBucket(bucket, acl string) error {
|
||||
func (dt donut) MakeBucket(bucket string, acl BucketACL) error {
|
||||
dt.lock.Lock()
|
||||
defer dt.lock.Unlock()
|
||||
if bucket == "" || strings.TrimSpace(bucket) == "" {
|
||||
return iodine.New(InvalidArgument{}, nil)
|
||||
}
|
||||
return dt.makeDonutBucket(bucket, acl)
|
||||
return dt.makeDonutBucket(bucket, acl.String())
|
||||
}
|
||||
|
||||
// GetBucketMetadata - get bucket metadata
|
||||
@@ -165,7 +128,7 @@ func (dt donut) SetBucketMetadata(bucketName string, bucketMetadata map[string]s
|
||||
if !ok {
|
||||
return iodine.New(InvalidArgument{}, nil)
|
||||
}
|
||||
oldBucketMetadata.ACL = acl
|
||||
oldBucketMetadata.ACL = BucketACL(acl)
|
||||
metadata.Buckets[bucketName] = oldBucketMetadata
|
||||
return dt.setDonutBucketMetadata(metadata)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user