분산컴퓨팅의 주요 과제 4가지

분산컴퓨팅의 주요 과제 4가지

Summary 분산 시스템은 강력한 성능과 안정성을 제공하지만, 동시성 문제, 부분 장애, 성능 저하, 데이터 일관성 유지 등의 도전 과제가 존재한다. 각 시스템 간의 작업 순서 설정, 장애 발생 시 대처, 네트워크 병목 문제 해결, 그리고 여러 컴퓨터 간의 데이터 일관성 유지가 중요한 이슈로 다뤄진다.


분산컴퓨팅은 생각보다 골때린 문제들이 있음

요약하자면, 분산 시스템은 여러 컴퓨터가 함께 일해서 강력한 성능과 안정성을 얻을 수 있지만, 그 과정에서 동시에 작업할 때 생기는 문제, 일부만 고장 나는 문제, 예상보다 성능이 안 나오는 문제, 그리고 모든 컴퓨터가 같은 정보를 갖도록 유지하는 문제들을 해결해야 하는 어려움이 있다는거임…

동시성 - 여러 시스템중 누가 먼저인지 순서를 어케 정할거냐?

컴퓨터 2대가 쇼핑몰에서 동시에 결제를했을때, A가 먼저일지, B가 먼저일지 어떻게 설정할거냐?

…라고 생각하면 됨

이를 해결하기 위해 시스템간 데이터가 섞이지 않도록 순서를 잘 설정하고 관련된 규칙을 정하는것이 중요함

부분 장애 - 여러 시스템중 하나가 죽으면 어쩔꺼?

만약에 시스템들끼리 끈끈하게 엮여있으면, 뭐 하나 죽으면 곤란해지겠지?

스페셜리스트끼리 구성된 팀이 가장 이상적이겠지만…

만약 그 팀중 하나가 과로사로 죽거나 빤쓰런하면…

해당 팀은 제대로 기능하기 어렵겠지

분산컴퓨팅에서도 같은 문제가 존재함.

그래서 하나의 일만 기가막히게 하는 노드들로만 구성할건지, 다재다능한 노드들로만 구성할건지… 구성하는건 설계자의 몫

성능 - 네트워크 병목에 의해 속도가 더 느릴수도 있는데, 속도문제 어떻게 해결할거?

여러명이 협업하고, 모두의 작업이 끝날때까지 기다리는 모델을 채택하면, 100개의 노드중 99개가 빠르고, 1개의 노드가 느린 상황에서 모든 노드는 그 1개의 노드를 기다려야한다.

이처럼 분산컴퓨팅은 시스템을 여러대 쓴다고 항상 빠른건 아닐 수 있음

일관성 - 여러 컴퓨터가 일관된 데이터를 사용중이라고 확신할 수 있음?

여러 컴퓨터에 흩어져있는 데이터의 복제본들을 어떻게 일관되게 유지할거냐? 문제인데, 사실 컴퓨터는 어떠한 값을 복사해서 작업했다가 돌려둠…

근데 이거 싱글노드 컴퓨터의 단일스레드에서도 Untitled 관련해서 문제가 골치아픈데… 분산컴퓨팅 세계에서는 그 복잡성의 레이어가 더욱 높아짐.

더욱 상위 차원에서 각 노드간 일관된 데이터를 고민해봐야함.

💬 댓글

GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인

🔧 댓글 시스템 설정이 필요합니다

GitHub Discussions 기반 댓글 시스템을 활성화하려면:

  1. Giscus 설정 페이지에서 설정 생성
  2. GISCUS_SETUP_GUIDE.md 파일의 안내를 따라 설정 완료
  3. Repository의 Discussions 기능 활성화

Repository 관리자만 설정할 수 있습니다. 설정이 완료되면 모든 방문자가 댓글을 남길 수 있습니다.