@ -165,8 +165,9 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
var maxFileKey NeedleId
var maxFileKey NeedleId
collectionVolumeSize := make ( map [ string ] uint64 )
collectionVolumeSize := make ( map [ string ] uint64 )
for _ , location := range s . Locations {
for _ , location := range s . Locations {
var deleteVids [ ] needle . VolumeId
maxVolumeCount = maxVolumeCount + location . MaxVolumeCount
maxVolumeCount = maxVolumeCount + location . MaxVolumeCount
location . Lock ( )
location . R Lock( )
for _ , v := range location . volumes {
for _ , v := range location . volumes {
if maxFileKey < v . MaxFileKey ( ) {
if maxFileKey < v . MaxFileKey ( ) {
maxFileKey = v . MaxFileKey ( )
maxFileKey = v . MaxFileKey ( )
@ -175,8 +176,7 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
volumeMessages = append ( volumeMessages , v . ToVolumeInformationMessage ( ) )
volumeMessages = append ( volumeMessages , v . ToVolumeInformationMessage ( ) )
} else {
} else {
if v . expiredLongEnough ( MAX_TTL_VOLUME_REMOVAL_DELAY ) {
if v . expiredLongEnough ( MAX_TTL_VOLUME_REMOVAL_DELAY ) {
location . deleteVolumeById ( v . Id )
glog . V ( 0 ) . Infoln ( "volume" , v . Id , "is deleted." )
deleteVids = append ( deleteVids , v . Id )
} else {
} else {
glog . V ( 0 ) . Infoln ( "volume" , v . Id , "is expired." )
glog . V ( 0 ) . Infoln ( "volume" , v . Id , "is expired." )
}
}
@ -184,8 +184,18 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
fileSize , _ , _ := v . FileStat ( )
fileSize , _ , _ := v . FileStat ( )
collectionVolumeSize [ v . Collection ] += fileSize
collectionVolumeSize [ v . Collection ] += fileSize
}
}
location . RUnlock ( )
if len ( deleteVids ) > 0 {
// delete expired volumes.
location . Lock ( )
for _ , vid := range deleteVids {
location . deleteVolumeById ( vid )
glog . V ( 0 ) . Infoln ( "volume" , vid , "is deleted." )
}
location . Unlock ( )
location . Unlock ( )
}
}
}
for col , size := range collectionVolumeSize {
for col , size := range collectionVolumeSize {
stats . VolumeServerDiskSizeGauge . WithLabelValues ( col , "normal" ) . Set ( float64 ( size ) )
stats . VolumeServerDiskSizeGauge . WithLabelValues ( col , "normal" ) . Set ( float64 ( size ) )