|
|
@ -210,7 +210,13 @@ func forgetShardId(ecVolume *erasure_coding.EcVolume, shardId erasure_coding.Sha |
|
|
|
|
|
|
|
func (s *Store) cachedLookupEcShardLocations(ctx context.Context, ecVolume *erasure_coding.EcVolume) (err error) { |
|
|
|
|
|
|
|
if ecVolume.ShardLocationsRefreshTime.Add(10 * time.Minute).After(time.Now()) { |
|
|
|
shardCount := len(ecVolume.ShardLocations) |
|
|
|
if shardCount < erasure_coding.DataShardsCount && |
|
|
|
ecVolume.ShardLocationsRefreshTime.Add(11 * time.Second).After(time.Now()) || |
|
|
|
shardCount == erasure_coding.TotalShardsCount && |
|
|
|
ecVolume.ShardLocationsRefreshTime.Add(37 * time.Minute).After(time.Now()) || |
|
|
|
shardCount >= erasure_coding.DataShardsCount && |
|
|
|
ecVolume.ShardLocationsRefreshTime.Add(7 * time.Minute).After(time.Now()) { |
|
|
|
// still fresh
|
|
|
|
return nil |
|
|
|
} |
|
|
|