Fix duplicate map allocation

master
Harshavardhana 10 years ago
parent 8ce44bfbd1
commit 3d61ba5930
  1. 10
      pkg/storage/drivers/memory/memory.go
  2. 13
      pkg/storage/drivers/memory/memory_multipart.go

@ -295,14 +295,7 @@ func (memory *memoryDriver) createObject(bucket, key, contentType, expectedMD5Su
}
memory.lock.Lock()
memoryObject := make(map[string]drivers.ObjectMetadata)
switch {
case len(storedBucket.objectMetadata) == 0:
storedBucket.objectMetadata = memoryObject
storedBucket.objectMetadata[objectKey] = newObject
default:
storedBucket.objectMetadata[objectKey] = newObject
}
storedBucket.objectMetadata[objectKey] = newObject
memory.storedBuckets[bucket] = storedBucket
memory.lock.Unlock()
return newObject.Md5, nil
@ -336,6 +329,7 @@ func (memory *memoryDriver) CreateBucket(bucketName, acl string) error {
var newBucket = storedBucket{}
newBucket.objectMetadata = make(map[string]drivers.ObjectMetadata)
newBucket.multiPartSession = make(map[string]multiPartSession)
newBucket.partMetadata = make(map[string]drivers.PartMetadata)
newBucket.bucketMetadata = drivers.BucketMetadata{}
newBucket.bucketMetadata.Name = bucketName
newBucket.bucketMetadata.Created = time.Now().UTC()

@ -24,7 +24,6 @@ import (
"encoding/hex"
"errors"
"io"
"log"
"math/rand"
"runtime/debug"
"sort"
@ -192,14 +191,7 @@ func (memory *memoryDriver) createObjectPart(bucket, key, uploadID string, partI
}
memory.lock.Lock()
memoryPart := make(map[string]drivers.PartMetadata)
switch {
case len(storedBucket.partMetadata) == 0:
storedBucket.partMetadata = memoryPart
storedBucket.partMetadata[partKey] = newPart
default:
storedBucket.partMetadata[partKey] = newPart
}
storedBucket.partMetadata[partKey] = newPart
multiPartSession := storedBucket.multiPartSession[key]
multiPartSession.totalParts++
storedBucket.multiPartSession[key] = multiPartSession
@ -398,9 +390,6 @@ func (memory *memoryDriver) ListObjectParts(bucket, key string, resources driver
}
func (memory *memoryDriver) expiredPart(a ...interface{}) {
cacheStats := memory.multiPartObjects.Stats()
log.Printf("CurrentSize: %d, CurrentItems: %d, TotalExpirations: %d",
cacheStats.Bytes, cacheStats.Items, cacheStats.Expired)
key := a[0].(string)
// loop through all buckets
for _, storedBucket := range memory.storedBuckets {

Loading…
Cancel
Save