MCPcopy
hub / github.com/CodisLabs/codis / flushOpStats

Method flushOpStats

pkg/proxy/session.go:666–691  ·  view source on GitHub ↗
(force bool)

Source from the content-addressed store, hash-verified

664}
665
666func (s *Session) flushOpStats(force bool) {
667 var nano = time.Now().UnixNano()
668 if !force {
669 const period = int64(time.Millisecond) * 100
670 if d := nano - s.stats.flush.nano; d < period {
671 return
672 }
673 }
674 s.stats.flush.nano = nano
675
676 incrOpTotal(s.stats.total.Swap(0))
677 incrOpFails(s.stats.fails.Swap(0))
678 for _, e := range s.stats.opmap {
679 if e.calls.Int64() != 0 || e.fails.Int64() != 0 {
680 incrOpStats(e)
681 }
682 }
683 s.stats.flush.n++
684
685 if len(s.stats.opmap) <= 32 {
686 return
687 }
688 if (s.stats.flush.n % 16384) == 0 {
689 s.stats.opmap = make(map[string]*opStats, 32)
690 }
691}

Callers 2

StartMethod · 0.95
loopWriterMethod · 0.95

Calls 5

incrOpTotalFunction · 0.85
incrOpFailsFunction · 0.85
incrOpStatsFunction · 0.85
SwapMethod · 0.45
Int64Method · 0.45

Tested by

no test coverage detected