skiplist/stats.go
func (s *Stats) Merge(sts *Stats) {
	atomic.AddUint64(&s.insertConflicts, sts.insertConflicts)
	sts.insertConflicts = 0
	atomic.AddUint64(&s.readConflicts, sts.readConflicts)
	sts.readConflicts = 0
	atomic.AddInt64(&s.softDeletes, sts.softDeletes)
	sts.softDeletes = 0
	atomic.AddInt64(&s.nodeAllocs, sts.nodeAllocs)
	sts.nodeAllocs = 0
	atomic.AddInt64(&s.nodeFrees, sts.nodeFrees)
	sts.nodeFrees = 0
	atomic.AddInt64(&s.usedBytes, sts.usedBytes)
	sts.usedBytes = 0

	for i, val := range sts.levelNodesCount {
		if val != 0 {
			atomic.AddInt64(&s.levelNodesCount[i], val)
			sts.levelNodesCount[i] = 0
		}
	}
}
func (s *Stats) Merge(sts *Stats) {
	atomic.AddUint64(&s.insertConflicts, sts.insertConflicts)
	sts.insertConflicts = 0
	atomic.AddUint64(&s.readConflicts, sts.readConflicts)
	sts.readConflicts = 0
	atomic.AddInt64(&s.softDeletes, sts.softDeletes)
	sts.softDeletes = 0
	atomic.AddInt64(&s.nodeAllocs, sts.nodeAllocs)
	sts.nodeAllocs = 0
	atomic.AddInt64(&s.nodeFrees, sts.nodeFrees)
	sts.nodeFrees = 0
	atomic.AddInt64(&s.usedBytes, sts.usedBytes)
	sts.usedBytes = 0

	for i, val := range sts.levelNodesCount {
		if val != 0 {
			atomic.AddInt64(&s.levelNodesCount[i], val)
			sts.levelNodesCount[i] = 0
		}
	}
}
// Merge updates global stats with partial stats and resets partial stats