Hacker News new | ask | show | jobs
by clnq 1001 days ago
What?
1 comments

Think of it this way: you run a website that displays photos in chronological order. You receive these two photos. Which picture was taken first? How can you tell?
I've looked at user telemetry and the conclusion I've come to is that the only time you can trust is from systems under your control (i.e., submission time).
It's why the US patent system switched from "first to invent" to "first to file" in 2013. The last country to do so.

https://en.wikipedia.org/wiki/First_to_file_and_first_to_inv...

That's not an example of a distributed system, so it doesn't really clear up whatever the GP was trying to say about time in distributed systems at small scales.

But even if it was this is nonsensical. The visual content of a photo is generally not what is used to determine the moment in time when it was captured. There's metadata in the image format that specifies when the photo was taken.

There are pictures taken at almost the same moment in time all the time around the world, and there are many pictures taken of the same place, what's special about the situation here is that both of those things happened, and the subject isn't hyper famous, and it isn't a static object, so the chances of it happening were very low.

The distributed part is the clocks on the cameras across the world. The article discusses the timestamp is included in the exif data embedded in the jpeg file.

The clocks are most likely synchronized based on gps assuming they’re already pulling location data from the satellites, the time is “free”. However, the precision of the clocks is not specified and like any process is subject to error. So at the small timeframes here (sub millisecond), you are potentially within the margin of error. When the error bars of several measurements from distributed parts of your system overlap, how do you determine an ordering between them?

Whoever arrives first? Since they can't arrive at the same time because of sequential processing at the final step. So the guy who implemented the system will be the arbiter of truth.
Got it. Can’t know what time it is exactly if you have 2 clocks.