6 ms·
If it’s round robin then it should be an even load, how does the modulo change that exactly? Also what number are they using to modulo and where is that happen
by manigandham 4y ago
If it’s round robin then it should be an even load, how does the modulo change that exactly?
Also what number are they using to modulo and where is that happening? Because at that point don’t they already have an incrementing ID before generating another one?
- andreareina 4y agoTake a 3-bit counter: 0->A 1->B 2->C 3->A 4->B 5->C 6->A 7->B A and B get hit three times while C only twice, so it will see 66% utilization compared to A and B EDITED s/once/twice/ thanks CyberDildonics
- CyberDildonics 4y agowhile C only once You listed C twice
- woodruffw 4y agoThat's a typo. You can still see they're correct about the ratio (two "C"s for every three "A"s and "B"s).
- manigandham 4y agoThere's no ratio. It's even across all of them, as long as the integer keeps incrementing. One more number (9) instead of stopping at 8 and there would be an even spread.
- ahmedtd 4y agoNot when the counter overflows back to 0. If it's a 3 bit counter, 0 is A again, not C.
- manigandham 4y agoThe comment says a 32-bit signed int. Where is the 3-bit assumption coming from?
- iforgotpassword 4y agoThe comment starts with that assumption for the sake of a concise example. do you expect them to write the whole sequence out using a 32bit counter? :-D
- manigandham 4y agoThen it's irrelevant. The point is that the remainders are evenly distributed as the integer is incremented, with at most a single round being short. That's just how the math works.
- iainmerrick 4y ago"A single round being short" is exactly what they're talking about. Edit to add: whether that's a big enough effect for the use case they're talking about, I don't know. This sort of thing is definitely significant in cryptographic code, though.
- Thorrez 4y agoWhen you divide 2^32 across 3 machines, you get 1431655766, 1431655765, 1431655765. They're nearly identical, just an itsy bitsy bit different. This isn't going to cause one machine to have noticeably less load than the others.
- iforgotpassword 4y agoThat's not what's being discussed here though.
- Thorrez 4y ago
- andreareina 4y agoEdited, thanks
- manigandham 4y agoThat doesn't change anything... it's still round robin. You just stopped at an arbitrary number of 8 integers instead of 9.
- lofatdairy 4y agoIt's not arbitrary, GP stated it was a 3 bit counter. In GGP (or something, not sure how far down in the thread we are), they were referring to a 32 bit int counter until overflow. If you bin each number from 0 to 2^32 - 1 by mod 3, you don't get 3 bins of equal sizes, 1 bin always comes out smaller.
- manigandham 4y agoSmaller by a single number at most, it's effectively insignificant. Not sure where the 3-bit counter assumption came from as the original post said 32bit signed int.