Distribution transparency

유석현(SeokHyun Yu)·2023년 4월 11일
0

분산 시스템

목록 보기
5/27
post-thumbnail
post-custom-banner

분산 시스템에서는 여러 대의 컴퓨터가 서로 연결되어 작동하게 되는데, 이때 사용자들은 분산 시스템이 아닌 하나의 컴퓨터에서 작업하는 것처럼 느끼기를 원한다.

이를 위해 "분산 투명성(Distribution transparency)"을 구현하게 된다.

즉, 사용자들이 분산 시스템을 인식하지 못하게 하여, 서비스를 이용하는 과정에서 이를 불편하게 느끼지 않도록 하는 것이다.

투명한 분산 시스템은 사용자에게 그들이 사용하는 애플리케이션이 마치 하나의 로컬 컴퓨터에서 제공하는 서비스를 이용하는 것과 같은 느낌을 주어야 한다.


투명성의 종류


Access ransparency(접근 투명성)

접근 투명성(Access Transparency)은 분산 시스템에서 데이터 표현 방식과 사용자가 리소스에 접근하는 방법의 차이점을 숨기는 기능이다.

예를 들어, 서로 다른 운영 체제를 사용하는 컴퓨터 시스템에서는 각각의 운영 체제가 고유한 파일 이름 규칙파일 조작 방법을 가지고 있다.

그러나 이러한 차이점들은 사용자와 응용 프로그램에서 숨겨져야 한다.

이를 통해 사용자와 응용 프로그램은 분산 시스템 내에서 자원을 접근하는 방법에 대한 일관성 있는 인터페이스를 제공받을 수 있다.


Location transparency(위치 투명성)

사용자는 시스템 내 리소스가 물리적으로 어디에 위치하는지 알 수 없도록 하는 기능이다.

예를 들어, URL은 대상 파일이 항상 현재 위치에 있는지 또는 최근에 이동한 것인지를 알 수 없다.

이러한 투명성은 사용자가 자원의 위치를 알 필요 없이 자원에 접근할 수 있도록 하며, 시스템의 유연성과 확장성을 높인다.


Migration transparency(이전 투명성)

이전 투명성은 리소스를 이동시켜도 리소스에 접근하는 방법에 영향을 미치지 않도록 하는 기능이다.

이러한 투명성은 리소스를 이동하거나 복제하거나 재구성할 수 있도록 하며, 시스템의 유지보수 및 업그레이드를 용이하게 한다.


Relocation transparency(재위치 투명성)

재위치 투명성은 리소스가 접근되는 동안 리소스가 이동해도 사용자나 응용 프로그램이 아무것도 인지하지 못하게 하는 기능이다.

예를 들어, 무선 인터넷을 사용하는 모바일 사용자들은 이동하는 동안 다른 여러 개의 무선 인터넷에 계속 연결되기 때문에 연결이 끊어지지 않고 계속 사용할 수 있다. 이러한 투명성은 사용자가 리소스 이동으로 인한 재접속 등의 불편을 겪지 않도록 하며, 시스템의 신뢰성과 가용성을 높인다.


Replication transparency(복제 투명성)

같은 자원이 여러 개 존재하는 것을 숨기는 기능이다.


Concurrency transparency(동시성 투명성)

여러 사용자가 동일한 자원을 사용하더라도 서로 영향을 주지 않는 것을 의미한다.

예를 들어, 두 개의 사용자가 같은 파일 서버에 파일을 저장하거나, 같은 데이터베이스의 테이블을 사용하는 경우이다.

이러한 경우, 자원에 대한 동시 액세스는 자원이 일관된 상태로 유지되어야 한다.

이를 위해 Locking 메커니즘을 사용한다.


Failure transparency(장애 투명성)

시스템에 장애가 생겨도 사용자가 이를 인지하지 못하고 시스템이 복구하는 것을 의미한다.


투명성의 trade-off

분산 시스템에서는 사용자에게 투명성을 제공하는 것이 중요하지만, 모든 분산 측면을 숨기는 것이 항상 바람직한 것은 아니다.

물리적 거리나 네트워크 상황에 따라 처리 속도나 성능이 달라질 수 있기 때문이다.

이 경우, 사용자가 이를 인식하고 조정할 수 있도록 투명성과 성능 간의 적절한 균형을 유지하는 것이 좋습니다.

예를 들어, 서버 연결 시도가 실패할 경우, 사용자에게 안내를 제공하거나 연결 시도를 취소할 수 있는 기능을 제공하는 것이 좋다.

또 다른 예로, 파일을 인쇄하는 경우 사용자로부터 가까운 프린터를 사용할 수 있도록 프린터의 위치를 제공해주는 것이 더 효율적일 수 있다.

결국 분산 시스템에서는 투명성과 성능 간에는 상충 관계가 있으므로 상황에 맞는 적절한 조율이 필요하다.

profile
Backend Engineer
post-custom-banner

0개의 댓글