#paper #review A Note on Distributed Computing
the lack of robustness is inherent in the interface and not something that can be changed by altering the implementation
- 과도한 추상화는 캐망이다.
- 프로그래머가 local, distribute 인지 알고 짜게 해야 함.
- 즉 인터페이스를 미친 듯이 통일할 필요는 없다.
distributed computing 에서 명심
latency
local machine처럼 막 호출했다간 심각한 성능 저하.
memory access
shared memory를 지원하지 않는 이상 address-space-relative pointer를 못 쓴다.
partial failure and concurrency
- 구현 이슈가 아니라 인터페이스 이슈다
- 인터페이스에서 이걸 처리할 수 있거나 state를 검사할 수 있는 걸 제공해야 한다는 뜻
- 구현에서 어떻게든 극복하려고 하겠지만 안 된다
- 어떻게든 같은 인터페이스를 가지게 하려면 local computing을 distributed computing에 맞춘 조낸 비효율적이고 불편한 인터페이스로 수행할 각오
그럼 완전 다른 인터페이스로 디자인해야 해?
- distributed 속성을 추가하는 식으로 디자인하는 예제
- Spring, Clouds
- local object의 속성을 공유
- distributed object 속성을 추가로 가지는 식으로 디자인
- 이 정도가 가장 훌륭한 해결책으로 생각함
저자
- Jim Waldo
- Geoff Wyant
- Ann Wollrath
- Sam Kendall