Skip to content
Self-Knowing

RPC 与多线程

约 261 个字 预计阅读时间 1 分钟

There is no association in the language between the lock and any variables.

在编程语言中,锁与任何变量都没有关联。

image-20241028171956532

这样可以把 u 作为副本变量存起来,方便函数内部进行调用。防止另一个线程对 u 进行修改。

GFS

当Primary要求Secondary追加数据时,直到Primary确信所有的Secondary都能执行数据追加之前,Secondary必须小心不要将数据暴露给读请求。所以对于写请求,你或许需要多个阶段。

  • 在第一个阶段,Primary向Secondary发请求,要求其执行某个操作,并等待Secondary回复说能否完成该操作,这时Secondary并不实际执行操作。
  • 在第二个阶段,如果所有Secondary都回复说可以执行该操作,这时Primary才会说,好的,所有Secondary执行刚刚你们回复可以执行的那个操作。这是现实世界中很多强一致系统的工作方式,这被称为两阶段提交(Two-phase commit)。

Created: June 27, 2025
Last update: June 27, 2025

Discussion