It seems to me that this relies entirely on client-side timestamps. How do you deal with clock skew? Or is that simply a rare enough occurrence/small enough interval for SoundCloud that it doesn’t matter?
I also want to verify that I understand correctly that each Redis backing SoundCloud is independent. Otherwise, I’m not clear why you wouldn’t simply directly use Redis set semantics.
It seems to me that this relies entirely on client-side timestamps. How do you deal with clock skew? Or is that simply a rare enough occurrence/small enough interval for SoundCloud that it doesn’t matter?
It relies on writer-side timestamps, yes. We have good precision (microsecond) and take great pains on the writer-side to keep clocks in sync, so indeed—it’s a rare enough thing that we weren’t concerned about it.
I also want to verify that I understand correctly that each Redis backing SoundCloud is independent. Otherwise, I’m not clear why you wouldn’t simply directly use Redis set semantics.
Happy to answer questions, if anyone’s got some.
It seems to me that this relies entirely on client-side timestamps. How do you deal with clock skew? Or is that simply a rare enough occurrence/small enough interval for SoundCloud that it doesn’t matter?
I also want to verify that I understand correctly that each Redis backing SoundCloud is independent. Otherwise, I’m not clear why you wouldn’t simply directly use Redis set semantics.
It relies on writer-side timestamps, yes. We have good precision (microsecond) and take great pains on the writer-side to keep clocks in sync, so indeed—it’s a rare enough thing that we weren’t concerned about it.
Yes, they’re independent.