aboutsummaryrefslogtreecommitdiff
path: root/go/storage
diff options
context:
space:
mode:
Diffstat (limited to 'go/storage')
-rw-r--r--go/storage/needle.go7
-rw-r--r--go/storage/store.go10
2 files changed, 9 insertions, 8 deletions
diff --git a/go/storage/needle.go b/go/storage/needle.go
index 31e8a267c..353ca6dd5 100644
--- a/go/storage/needle.go
+++ b/go/storage/needle.go
@@ -15,9 +15,10 @@ import (
)
const (
- NeedleHeaderSize = 16 //should never change this
- NeedlePaddingSize = 8
- NeedleChecksumSize = 4
+ NeedleHeaderSize = 16 //should never change this
+ NeedlePaddingSize = 8
+ NeedleChecksumSize = 4
+ MaxPossibleVolumeSize = 4 * 1024 * 1024 * 1024 * 8
)
/*
diff --git a/go/storage/store.go b/go/storage/store.go
index cc9fef7d0..0f10331ca 100644
--- a/go/storage/store.go
+++ b/go/storage/store.go
@@ -262,15 +262,15 @@ func (s *Store) Write(i VolumeId, n *Needle) (size uint32, err error) {
err = fmt.Errorf("Volume %s is read only!", i)
return
} else {
- if s.volumeSizeLimit >= v.ContentSize()+uint64(size) {
+ if MaxPossibleVolumeSize >= v.ContentSize()+uint64(size) {
size, err = v.write(n)
} else {
err = fmt.Errorf("Volume Size Limit %d Exceeded! Current size is %d", s.volumeSizeLimit, v.ContentSize())
}
- if err != nil && s.volumeSizeLimit < v.ContentSize()+uint64(size) && s.volumeSizeLimit >= v.ContentSize() {
- glog.V(0).Infoln("volume", i, "size is", v.ContentSize(), "close to", s.volumeSizeLimit)
- if err = s.Join(); err != nil {
- glog.V(0).Infoln("error with Join:", err)
+ if s.volumeSizeLimit < v.ContentSize()+uint64(size) {
+ glog.V(0).Infoln("volume", i, "size", v.ContentSize(), "will exceed limit", s.volumeSizeLimit)
+ if e = s.Join(); e != nil {
+ glog.V(0).Infoln("error when reporting size:", e)
}
}
}