RussellLuo / timingwheel

Golang implementation of Hierarchical Timing Wheels.
MIT License
660 stars 125 forks source link

计算tw.buckets索引的问题 #48

Open alfiver opened 1 year ago

alfiver commented 1 year ago

在timingwheel.go的add方法中 b := tw.buckets[virtualID%tw.wheelSize]

这句我觉得应该是 b := tw.buckets[virtualID*tw.tick%tw.wheelSize], 这样算出来的桶索引才是对的

ddb12138 commented 9 months ago

virtualID的计算式子为: virtualID := t.expiration / tw.tick 按我的理解,是将 时间按tick大小分成 vitualID份,此时要算出属于哪个桶,用wheelsize取余即可 @alfiver