요약

  • 2004년 클라이언트 5.0에 도입된 수집 서버는 원래 작업 서버에 접근할 수 없을 때 완성된 결과를 대신 받았다.
  • 결과 확인, 기여 기록, 전달에는 운영 자원이 필요했다. 2009년 6월 장애 보고는 장비 복구와 새 기반 도입이 겹친 현장을 보여 준다.

자기 컴퓨터를 연구에 빌려 준 사람에게 계산 완료 표시는 반가운 소식이다. 기계가 맡은 일을 마쳤다는 뜻이다. 하지만 결과를 받을 서버가 응답하지 않으면, 그 시간은 아직 연구자에게 닿지 못했다. 숙제는 다 했는데 제출 창구가 닫힌 셈이다.

Folding@home은 이런 반환 경로에도 설계가 필요했다. 프로젝트 연혁에 따르면 2000년 10월 Stanford University의 Vijay Pande 연구실에서 시작됐다. 참여자는 프로그램을 설치하고 분자 시뮬레이션 과제를 받아 계산한 뒤 결과를 보냈다. 컴퓨터를 켜고 끄는 권한과 참여를 그만둘 권한은 소유자에게 있었다.

세계 곳곳에서 빌린 계산 시간을 연구에 쓰려면, 끝난 일을 제대로 받아야 했다. 모집의 규모만큼 접수의 책임도 커졌다.

먼저 받아 두는 서버

2009년 기술 논문은 2004년 클라이언트 5.0에 수집 서버가 추가됐다고 설명한다. 보통 결과는 과제를 내준 작업 서버로 돌아갔다. 그 서버에 연결할 수 없으면 지정된 수집 서버로 보낼 수 있었다.

수집 서버는 배포된 작업 기록과 대조해 해당 결과를 받아들이고 기여를 기록했다. 원래 작업 서버가 복귀하면 결과를 전달했다. 그동안 클라이언트는 살아 있는 작업 서버에서 다음 과제를 받을 수 있었다.

기다리는 장소가 바뀐 것이다. 참여자의 다음 기여가 고장 난 한 서버 앞에 계속 묶이는 대신, 프로젝트가 완성된 결과를 맡아 두었다.

복구된 서버에도 이득이었다. 결과를 보내려고 대기하던 클라이언트가 한꺼번에 몰리는 일을 줄일 수 있었다. 어렵게 살려 놓은 서버를 밀린 접속으로 다시 눕히는 환영식은, 운영자에게 별로 인기 있을 행사가 아니다.

접수처 뒤의 사람들

2009년 6월 16일 장애 보고에서 Pande는 GPU 서버 한 대가 심하게 고장 나 루트 파티션을 찾지 못한다고 썼다. 관리자들은 복구 디스크로 수리를 시도하고 있었다. 높은 부하로 멈췄던 다른 두 대는 다시 가동됐다.

팀은 기존 기반을 유지하면서 새 기반을 도입하느라 인력이 빠듯했다. 수집 서버의 기능 개선과 높은 부하에서 작업 서버의 재시작을 줄이는 일은 새 시스템에 기대한 효과였다. 당장의 장애는 그 도입까지 늦추고 있었다.

논문에 등장하는 참여자들의 사정도 구체적이다. 사용한 데이터 양에 따라 요금을 내는 사람, 모뎀으로 접속하는 사람, CPU 사용량을 조정하는 사람이 있었다. 개인과 팀의 포인트, 게시판에서 다른 참여자를 돕는 자원봉사자도 시스템의 일부였다. 집계된 계산 능력 뒤에는 비용을 내고 시간을 쓰는 사람이 있었다.

수신은 연구자에게 결과를 건네고, 기록은 참여자에게 기여가 도착했음을 보여 준다. 논문은 더 많은 클라이언트를 받아들이는 데 결과 수신과 저장, 후속 처리를 담당하는 기반이 제약이 됐다고 결론 내렸다. 컴퓨터를 더 빌리는 데 성공했다면, 이제 그 컴퓨터들이 끝낸 일을 받을 차례였다.