mirror of https://github.com/tikv/client-go.git
tikv: skip 0 when call `getMinSafeTSByStores` (#615)
Signed-off-by: Hangjie Mo <mohangjie1995@gmail.com>
This commit is contained in:
parent
8f35d3a669
commit
ec1202a9d2
16
tikv/kv.go
16
tikv/kv.go
|
|
@ -487,12 +487,12 @@ func (s *KVStore) GetClusterID() uint64 {
|
||||||
return s.clusterID
|
return s.clusterID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *KVStore) getSafeTS(storeID uint64) uint64 {
|
func (s *KVStore) getSafeTS(storeID uint64) (bool, uint64) {
|
||||||
safeTS, ok := s.safeTSMap.Load(storeID)
|
safeTS, ok := s.safeTSMap.Load(storeID)
|
||||||
if !ok {
|
if !ok {
|
||||||
return 0
|
return false, 0
|
||||||
}
|
}
|
||||||
return safeTS.(uint64)
|
return true, safeTS.(uint64)
|
||||||
}
|
}
|
||||||
|
|
||||||
// setSafeTS sets safeTs for store storeID, export for testing
|
// setSafeTS sets safeTs for store storeID, export for testing
|
||||||
|
|
@ -511,10 +511,14 @@ func (s *KVStore) getMinSafeTSByStores(stores []*locate.Store) uint64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
for _, store := range stores {
|
for _, store := range stores {
|
||||||
safeTS := s.getSafeTS(store.StoreID())
|
ok, safeTS := s.getSafeTS(store.StoreID())
|
||||||
if safeTS < minSafeTS {
|
if ok {
|
||||||
|
if safeTS != 0 && safeTS < minSafeTS {
|
||||||
minSafeTS = safeTS
|
minSafeTS = safeTS
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
minSafeTS = 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return minSafeTS
|
return minSafeTS
|
||||||
}
|
}
|
||||||
|
|
@ -559,7 +563,7 @@ func (s *KVStore) updateSafeTS(ctx context.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
safeTS := resp.Resp.(*kvrpcpb.StoreSafeTSResponse).GetSafeTs()
|
safeTS := resp.Resp.(*kvrpcpb.StoreSafeTSResponse).GetSafeTs()
|
||||||
preSafeTS := s.getSafeTS(storeID)
|
_, preSafeTS := s.getSafeTS(storeID)
|
||||||
if preSafeTS > safeTS {
|
if preSafeTS > safeTS {
|
||||||
metrics.TiKVSafeTSUpdateCounter.WithLabelValues("skip", storeIDStr).Inc()
|
metrics.TiKVSafeTSUpdateCounter.WithLabelValues("skip", storeIDStr).Inc()
|
||||||
preSafeTSTime := oracle.GetTimeFromTS(preSafeTS)
|
preSafeTSTime := oracle.GetTimeFromTS(preSafeTS)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue