Load providers from datastore on cache miss

Cache miss might mean that provider records where offloaded to
datastore and need to be brough back up in order to have a consistent
cache entry.
This commit is contained in:
Vasily Kolobkov 2016-11-10 18:01:48 +02:00
parent df7a822619
commit bd6e9b1d2f

View File

@ -160,7 +160,11 @@ func readTimeValue(i interface{}) (time.Time, error) {
func (pm *ProviderManager) addProv(k *cid.Cid, p peer.ID) error {
iprovs, ok := pm.providers.Get(k.KeyString())
if !ok {
iprovs = newProviderSet()
stored, err := loadProvSet(pm.dstore, k)
if err != nil {
return err
}
iprovs = stored
pm.providers.Add(k.KeyString(), iprovs)
}
provs := iprovs.(*providerSet)