5 ms·
When you bump your clock forward do you also bump your time stamp forward by the same amount?
by sunk1st 4y ago
When you bump your clock forward do you also bump your time stamp forward by the same amount?
- tectec 4y agoI think you use the clock instead of the timestamp. You could keep the timestamp for business purposes but that would be the same as without CRDT
- LAC-Tech 4y agoNo. It's kind of a mindset shift, but with logical clocks you kind have to let go of the concept of ordering with one global universal time - it's just not feasible to do accurately with clock skew. They're purely used to provide a partial order of events - partial because the system cannot say for sure whether some events happened before or after each other.
- convolvatron 4y agoyou can also just assume that it is a total ordering, and ignore the entire notion of a canonical non-relativistic clock which would find you out
- CGamesPlay 4y ago> ordering with one global universal time - it's just not feasible to do accurately with clock skew. Even more fundamentally, it’s not possible because of physics. The passage of time is relative! Not as important for terrestrial applications, but useful to consider as a theoretical limitation.
- LAC-Tech 4y agoEven with terrestrial applications that have very low clock skew, it can be very helpful to have a notion of which events could be effected by previous events and which couldn't have. But you're bang on the money with the physics analogy. Lamport himself says that his knowledge of special relativity helped him come up with the concept. https://www.youtube.com/watch?v=nfRouGH0oMg https://www.youtube.com/watch?v=nfRouGH0oMg
- bmacho 4y agoI believe that a global time is possible, indeed, because of physics, causality and information paradoxes. I don't have a proof for it, just a hunch.
- bmacho 4y agoWhat about: you place a clock somewhere in the universe that emits its value with light, then you define time for a given event as this vale? This seems to be defined, and having the property that if t(B) >= t(A) then B can't happen before A, and conversely, if AB is timelike, then T(B) > t(A). This seems to be such a nice construction, but I don't know its name.
- withinboredom 4y agoIf it is emitting its value by light, as you move away or closer to it, it's value will shift up/down (red/blue shift), and it's rate of 'ticking' will change up/down. You can't prove that something far away happened in the past or the future using your construction.
- bmacho 4y agoIt's value won't shift down. Yes, you don't measure it with a wristwatch, but you measure it with a device that receives the value on the clock, and display it. Just like any other physical measures. You don't measure nearly any of them with a wristwatch (only proper time/aging) but with a device that is constructed according to the definition of that physical measure.
- withinboredom 4y agoIf you are sending pulses, the pulses will get further apart as you accelerate away and shorter as you slow down. This will cause your clocks to desynchronize and you’ll find that a different amount of time has passed for you than your own clock. This is called relativity. You can say that your flashing clock is The One True Clock and if everything in the universe agrees with you, then I suppose it’s true. But one persons clock won’t be flashing at the same speed as another ones. This includes earth where one season we will be moving away (slower) and another we will be getting closer (speeding up). That’s be pretty annoying.
- moremetadata 4y ago[dead]
- plq 4y agoThink of it this way: If we say that we perceive the world in 3D space and 1D time (x,y,z,t), the t dimension is special: You can't change x,y,z if you don't advance t. Inversely, if x,y,z is constant, t doesn't need to advance. That's why it's enough for the logical clocks to count the number of committed transactions. This said, in a truly decentralized setting, where CRDTs make most sense, logical clocks are not useful as they are not not byzantine fault tolerant. You need merkle trees.
- preseinger 4y agodecentralized != untrusted byzantine fault tolerance is fun and all but it's a niche use case
- plq 4y ago> decentralized != untrusted You can only trust the nodes that you control. That's not what I'd call a decentralized system.
- preseinger 4y agoyou don't need to control a node to trust it, like tcp isn't byzantine fault tolerant and yet here we are
- kaoD 4y agoNot sure if understand what you mean. If we see every field as f(x,y,z,t) what do you mean you can't "change" x,y,z without changing t? If you mean changing the x,y,z argument values, you can (you're just evaluating a different point in space). If you mean changing the evaluated function value at a given x,y,z it's kinda tautological that it stays constant for a constant x,y,z,t.
- plq 4y agoI'll try to explain with an example: If you have an object at position (x1,y1,z1), at some time t1, and you want to move this object to a different position so that at time t2, it's at position (x2,y2,z2), you must have t2>t1. If t2==t1 then (x1,y1,z1)==(x2,y2,z2). So when time stops, everything else stops. It is tautological when you think about it, but I find that it's an easy way to explain why logical clocks work. Am I wrong to reason this way?