I help maintain a couple of open source projects like Kubernetes and etcd. • Co-chair of GopherCon - a conference for the Go programming language. • Overall systems goofball.
talk at HSP => • I know I have to think of a topic => • I know I have to prepare for it => • I know I have to deliver the talk … We’ve said “know" quite a bit here, but what does that mean? What does it mean to know something or have knowledge of something?
us answer questions pertaining to CS - for ex: ◦ How does a car know when to make a turn? ◦ How do I know that I need to come and give a talk here and at this time?
more complex systems involve multiple “agents” (multiple nodes in a distributed system, multiple people working to make an event happen, multiple threads in a multi-threaded program). • What does knowledge mean in a group of agents?
Reasoning About Knowledge The more knowledge I have, the more I can narrow in on what the “truth” is and the more uncertainty I can eliminate from my decisions.
(or do they need to reinform?) Do I know that HSP knows that I know p? (or should I ask them for the info?) Does HSP know that I know that they know that I know?
to have an audience to give a talk, so let’s say the agents are the audience + the speaker. • In order for people to show up, everyone needs to know p.
to have an audience to give a talk, so let’s say the agents are the audience + the speaker. • In order for people to show up, everyone needs to know p. • But that’s not enough! If everyone knows p… “I know p but I don’t know if others do, so I don’t want to go to an empty event, and hence I’m not showing up”
of knowledge in multi-agent systems. It means you are in a state of least uncertainty, which is awesome and super powerful. • HSP actually created common knowledge by announcing the event – fact publication.
of knowledge in multi-agent systems. It means you are in a state of least uncertainty, which is awesome and super powerful. • HSP actually created common knowledge by announcing the event – fact publication. • Assuming we are all rational entities, the announcement caused everyone to know p and everyone knew that everyone knew (because of the same announcement) and that caused everyone to know that everyone knows…
that agents know parts of p and no one even has the full picture. This is distributed knowledge. • Agents can work together to fully get p – fact discovery.
database • And the database stores prices of items. • “Give me all the items whose price is >= 40” • The “fact” here is distributed among nodes - distributed knowledge.
say we have a replicated system. • What if an update comes in? • If all nodes were to “know” a value, they need to agree on it. • This is the problem of distributed consensus.
values to another node, how does it know that it succeeded in doing so? • Let’s send acks! • But how does the other node know that the ack got delivered?
simultaneous coordination. “At exactly the same instant, 2 agents have to perform some action.” • Turns out, we don’t need true common knowledge anyway :)
view of the system, just its local history and information. Nodes then communicate and try building a full picture of the system by exchanging messages over the network.
role of a group of photographers observing a panoramic, dynamic scene, such as a sky filled with migrating birds, a scene so vast that it cannot be captured by a single photograph. The photographers must take several snapshots and piece the snapshots together to form a picture of the overall scene. The snapshots cannot all be taken at precisely the same instant because of synchronization problems. Furthermore, the photographers should not disturb the process that is being photographed; for instance, they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful.”
role of a group of photographers observing a panoramic, dynamic scene, such as a sky filled with migrating birds, a scene so vast that it cannot be captured by a single photograph. The photographers must take several snapshots and piece the snapshots together to form a picture of the overall scene. The snapshots cannot all be taken at precisely the same instant because of synchronization problems. Furthermore, the photographers should not disturb the process that is being photographed; for instance, they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful.”
taken at precisely the same instant because of synchronization problems. they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful.
taken at precisely the same instant because of synchronization problems. “All replicas take a snapshot at exactly the same instant” they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful.
taken at precisely the same instant because of synchronization problems. “All replicas take a snapshot at exactly the same instant” they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful. “If replica A talks to replica B, in the final snapshot, does it make sense if the receive event at B shows up before the send event at A? Is that meaningful?”
taken at precisely the same instant because of synchronization problems. “All replicas take a snapshot at exactly the same instant” they cannot get all the birds in the heavens to remain motionless while the photographs are taken. Yet, the composite picture should be meaningful. “If replica A talks to replica B, in the final snapshot, does it make sense if the receive event at B shows up before the send event at A? Is that meaningful?”
“passed”? • Relationism tells us that time is not independent of events that occur. • If change occurs, time occurs. (Which is really interesting to think about because Aristotle was a student of Plato! Who would’ve thought you could develop opinions of your own outside of what you are taught :)) Aristotle Leibniz
think of walking) happens before/causes (my legs moving) happens before/causes (me moving in the desired direction) At time t+1 (I think of walking) happens before/causes (my legs moving) happens before/causes (me moving in the desired direction)
taken at precisely the same instant because of synchronization problems. • If there were an absolute time, global time, each process could know when to snapshot locally. • But if processes were to tell each other to take snapshots, the time delay of that message itself is bound by the speed of light.
evolve in times local to their “systems”. • And then these local times evolve relative to each other. • So if we were to try and “relate” these local times, would we get one big global order of events (something causes something else causes something else…), a global time? • If that were true, then it would mean no 2 events could ever occur in parallel!
a distributed system: • Did A cause B? • Did A happen independent of B? This is super powerful for a multitude of reasons. We can not only order events across processes, but we can also reason about what caused what!
We can not only order events across processes, but we can also reason about what caused what! • That sounds like something that can give us the global state of a system in a meaningful way. • [Not a condition] In other, super informal terms: if an algorithm can preserve semantics similar to what vector clocks provide, that algorithm can give us a distributed global snapshot.
We can not only order events across processes, but we can also reason about what caused what! • That sounds like something that can give us the global state of a system in a meaningful way. • [Not a condition] In other, super informal terms: if an algorithm can preserve semantics similar to what vector clocks provide, that algorithm can give us a distributed global snapshot.
We can not only order events across processes, but we can also reason about what caused what! That sounds like something that can give us the global state of a system in a meaningful way.