kenju's blog

About Programming and Mathematics

論文『A Note on Distributed Computing』を読んだ

https://dl.acm.org/citation.cfm?id=974938

"論文『Orleans: Distributed Virtual Actors for Programmability and Scalability』を読んで" ( http://itiskj.hatenablog.com/entry/2018/08/30/142538 ) を書いたときと同様のきっかけで、"Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems" の Chapter 4 を読んでい。、章末の文献に紹介された一連の論文の中で、面白そうだったので読んでみた文献の一つ。

分散システムを実装するにあたって必要な基本的概念や設計パターンについて書かれている。1994 年執筆なので少し古いが、内容は今のクラウドアーキテクチャが一般的になった現代でも十分通じる、基本的な考え方が書かれていると感じた。

同様の論文に対して、他にも綺麗にまとめられた感想ブログを発見した。そちらも参考にされたい。

https://medium.freecodecamp.org/a-note-on-distributed-systems-3c796f1eb0a0

Memo

p.3

  • Writing a distributed application in this model proceeds in three phases
    • The first phase is to write the application without worrying about where objects are located and how their communication is implemented
    • The second phase is to tune performance by "concretizing" object locations and communication methods
    • The final phase is to test with "real bullets" (e.g., networks being partitioned, machines going down)

p.4

  • Communications protocol development has tended to follow two paths.
    • One path has emphasized integration with the current language model.
    • The other path has emphasized solving the problems inherent in distributed computing.

p.5

  • The major differences between local and distributed computing concern the areas of latency, memory access, partial failure, and concurrency

p.6

  • A more fundamental (but still obvious) difference between local and remote computing concerns the access to memory in the two cases - specifically in the use of pointers

p.7

  • While unlikely, it is at least logically possible that the differences in latency and memory access between local computing and distributed computing could be masked.
  • Partial failure is a central reality of distributed computing. ... This is not the case in distributed computing. where one component (machine, network link) can fail while the others continue.