Added treat_replication_as_minimums master toml option

This commit is contained in:
James Hartig
2020-04-01 15:18:40 -04:00
parent 9dc0b1df8f
commit eae3f27c80
7 changed files with 39 additions and 13 deletions

View File

@@ -11,11 +11,16 @@ import (
type Collection struct {
Name string
volumeSizeLimit uint64
replicationAsMin bool
storageType2VolumeLayout *util.ConcurrentReadMap
}
func NewCollection(name string, volumeSizeLimit uint64) *Collection {
c := &Collection{Name: name, volumeSizeLimit: volumeSizeLimit}
func NewCollection(name string, volumeSizeLimit uint64, replicationAsMin bool) *Collection {
c := &Collection{
Name: name,
volumeSizeLimit: volumeSizeLimit,
replicationAsMin: replicationAsMin,
}
c.storageType2VolumeLayout = util.NewConcurrentReadMap()
return c
}
@@ -30,7 +35,7 @@ func (c *Collection) GetOrCreateVolumeLayout(rp *super_block.ReplicaPlacement, t
keyString += ttl.String()
}
vl := c.storageType2VolumeLayout.Get(keyString, func() interface{} {
return NewVolumeLayout(rp, ttl, c.volumeSizeLimit)
return NewVolumeLayout(rp, ttl, c.volumeSizeLimit, c.replicationAsMin)
})
return vl.(*VolumeLayout)
}