4 ms·
In the absence of a physicist, I suppose that a software engineer in the room might do. After all, the counterintuitive consequences of relativity have their co
by avz 6y ago
In the absence of a physicist, I suppose that a software engineer in the room might do. After all, the counterintuitive consequences of relativity have their counterparts in counterintuitive effects in distributed systems and concurrent programming. In both cases, the core issue that misleads our intuition is the lack of a shared global clock that would impose a total ordering [1] on events/reads/writes/etc. Instead, events in both situations are only ordered partially [2]. In relativity the ordering is determined by the speed of light, in distributed systems the ordering is determined by what messages have been exchanged by two nodes and in concurrent programming reads and writes are ordered by synchronization actions such as lock acquisition and release, memory barriers etc (c.f. the happens-before relationship in JMM [3] and other memory models).
See for example [4] and [5].
[1]: https://en.wikipedia.org/wiki/Total_order https://en.wikipedia.org/wiki/Total_order
[2]: https://en.wikipedia.org/wiki/Partially_ordered_set https://en.wikipedia.org/wiki/Partially_ordered_set
[3]: https://en.wikipedia.org/wiki/Java_memory_model https://en.wikipedia.org/wiki/Java_memory_model
[4]: https://www.youtube.com/watch?v=UYZIHP120go https://www.youtube.com/watch?v=UYZIHP120go
[5]: https://www.microsoft.com/en-us/research/publication/time-clocks-ordering-events-distributed-system/ https://www.microsoft.com/en-us/research/publication/time-cl...