[분산 시스템] 17강 & 18강 - Naming (Structured & Attribted-based naming)

드림보이즈·2025년 2월 6일
0

주제 : Naming : Structured-naming

이름 자체에 구조가 있는 경우다.

1. Name spaces

Unix file system 생각하면 된다.

Name space

  • 이름은 "네임스페이스"로 구성됨
  • 네임스페이스는 라벨이 있는 Directed 그래프로 표현 가능하며, 두 종류 노드.

Leaf node

  • 명명된 엔티티 나타냄
  • 일반적으로 해당 엔티티가 나타내는 정보 저장

Directory node

  • 여러 개의 이름이 붙은 간선(엣지)를 가짐
  • 각 엣지는, 이름이나 노드의 쌍으로 표현되는 테이블에 저장됨.

Root node

  • 나가는 엣지만 있고, 들어오는 간선은 없음.

n5를 보자. 이건 트리가 아니라 그래프다.
하나의 엔티티를 두개의 이름으로 표현하고 있다. Path가 2개다.

Path

각 경로는, 엣지들의 라벨 순서로 참조될 수 있다.
위를 보자.

라벨의 순서를 path name이라 한다.

/home/max
는 뭘까? n3

Absolute path name

  • 경로 첫 번째 노드가 Root인 경로
  • 이거 아니면 Relative path name라 부름

Global name

  • 시스템 내에서 어디에서 사용되든 동일한 엔티티를 나타내는 이름

Local name

  • 해당 이름이 사용되는 위치에 따라 해석이 달라지는 이름

네임에 path가 담겨서 이를 쫓아가면 된다.

위 n5처럼 이름은 다지만 동일한 엔티티인 경우.

원본 파일이나 디렉토리에 대한 reference pointer 역할을 함.

n5를 보자. 실제 데이터가 아니라 경로를 저장하고 있다.
즉 n5에 접근하면, 다시 "/keys"를 따라 가야하는 것이다.

Linking and Mounting

서로 다른 컴퓨터에서 연결해서 서로 찾기

Name resolution

  • 서로 다른 네임스페이스를 병합할 때 사용할 수 있음
  • Mounted file system : 디렉토리 노드가 다른 이름 공간의 디렉토리 노드 식별자를 저장하도록 허용하는 것과 같음

Mount point

  • 다른 네임스페이스의 노드 식별자를 저장하는 디렉토리 노드

Mounting point

  • 외부 네임스페이스 내에서 디렉토리 노드

외부 네임스페이스를 마운트하기 위한 준비

  • 동일한 프로토콜
  • 외부 네임ㅅ페이스에서 마운팅 포인트 이름
  • 마운팅 포인트 위치

이름 : URL로 표현

Mount Point와 Mounting Point 차이:

Mount Point: 현재 이름 공간에서 외부 이름 공간을 연결하는 디렉토리.
Mounting Point: 외부 이름 공간에서 연결될 지점.

A는 /remote/vu에 있는 데이터를 사용한다고 생각한다.
실제로는 데이터는

nfs://flits.cs.vu.nl/home/steen
를 가지고 B에서 찾는다.
nfs : 프로토콜
filts.cs.vu.nl : B의 서버
home/steen : B의 네임스페이스

마운트 포인트 : vu
마운팅 포인트 : /home/steen

Name space distribution

DNS
네이밍 시스템 구현
부모는 자식만 알고 있음 <==> flat : 다 알고 잇음 부모는

위처럼 3개의 레이어가 있다.

  • global : 가장 변화가 적어서 lookup 결과를 캐싱하는게 효율적
  • Admin : 결과를 빠르게 리턴해주는게 중요
  • Managerial : 죽어도 큰 문제 없다. 엮인게 없으니.

글로벌로 갈수록 replica가 많을 것.

Name resolution : Iterative & Recursive

  1. Recursive name resolution
    root가 다 처리해서 결과만 client에 전달.
    서버 부담 큼.
    글로벌 레이어는 쓰면 ㅈ됌. 안됌.
    커뮤니케이션 코스트 적음

  2. Iterative : client가 계속 물어보기
    캐싱 쓰기 어려움. 클라이언트에서 해야됌.
    많은 Org가 local name server에 일단 감.


Attribted-based naming

찾고자 하는 리소스의 속성을 쫙 나열하면 그게 이름이다.
결과가 여러개나올 수 있다.
Flat, Structured는 Unique하지만, 얘는 아니다.
일반적으로 (속성,값) 페어들을 나열해서 표현한다.

Dirctory services

RDF(Resource Description Framework)에 따라서

profile
시리즈 클릭하셔서 카테고리 별로 편하게 보세용

0개의 댓글