ljy2010a / tail-based-sampling

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

这个过期条件怎么理解?

thesoundofsilent opened this issue · comments

		if i > 2_0000 && i < linesBatchNum-2_0000 {
			td.Status = common.TraceStatusSkip
		}

这里不大理解:这里TraceStatusSkip的作用是什么?为什么可以在 i > 2_0000 && i < linesBatchNum-2_0000这个条件下设置?

作用是减少一点点对idToTrace并发读写, 大量减少dropIdQueue这个chan的并发读

按题目的意思trace信息第一行与最后一行不超过2w行.
按固定批的方式处理20w行数据 (20-2-2)/20 = 80%的行里面的trace_id是可以直接进行淘汰/同步,不用走dropIdQueue

建议看 opencensus-service 我只是针对题目加了同步,改了下处理

	if etd.Status == common.TraceStatusSkip && etd.Wrong {
		//r.traceSkip++
		r.dropTrace(id, etd, "0")
		continue
	}

谢谢! 上面这个直接淘汰可以理解,但是后面这一句又有点奇怪

	if td.Status == common.TraceStatusSkip {
		//r.traceSkip++
		r.dropTrace(id, td, "0")
		continue
	}

这里怎么把Skip的都drop掉了?

明白了,谢谢,非常有用