More actions
imported>rabierre No edit summary |
imported>rabierre No edit summary |
||
| Line 75: | Line 75: | ||
'''루트태블릿, 메타데이터 태블릿, 유저태블릿으로 구성됨. 일반 태블릿과 마찬가지로 SSTABLE로 이루어져있으며 write only임'''. | '''루트태블릿, 메타데이터 태블릿, 유저태블릿으로 구성됨. 일반 태블릿과 마찬가지로 SSTABLE로 이루어져있으며 write only임'''. | ||
'''자료구조 : B+-트리''' | '''자료구조 : B+-트리''' | ||
# 루트태블릿 : chubby에 위치가 기록된다 | # 루트태블릿 : chubby에 위치가 기록된다 | ||
## 메타태블릿이 분할될 때(또는 삽입될 때) 갱신됨. | ## 메타태블릿이 분할될 때(또는 삽입될 때) 갱신됨. | ||
# 메타데이터 태블릿 | # 메타데이터 태블릿 | ||
Revision as of 08:06, 10 August 2011
[[pagelist(^Bigtable)]]
구조
테이블 -> 태블릿 -> SSTABLE -> block
- 테이블은 태블릿들의 논리적인 집합.
- 태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
- SSTABLE은 block의 집합이며 block들의 주소와 오프셋으로 구성되어있다.
테이블
- Key - value
- row key : url(또는 데이터값의 대표, 제목등)
- column family : column 종류
- 앵커
- 콘텐츠(제목?) <- value와 뭐가 다른거지?
- Time Stamp
- value : 해당 사이트/키와 매핑되는 구조화된 데이터값
태블릿
태블릿을 모두 합병하면 테이블이 된다. 태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
- 태블릿의 이름은 : 마지막 키 -> 카탈로그에 매핑필요
- 마지막 키는 카탈로그에서 shorten id와 매핑되어있다.
- 태블릿은 하나 이상의 row로 구성됨.
- 태블릿은 SSTABL의 이름+오프셋을 리스트를 저장하고 있다.
SPLIT
- split 허용
- 트리거 : 태블릿 크기가 200MB 이상일때
- row는 하나 이상의 태블릿에 존재할 수 있다.
- 제한적 split
- 같은 row내에서는 split하지 않는다.
- 태블릿 내에 두개 이상의 row가 존재할 때만 split가능
- split X
- 태블릿은 split되지 않는다.
ISSUE
- 태블릿의 분할 정책 어떤것을 할까?
SSTABLE
SSTABLE은 하나의 memtable과 block의 시작주소와 오프셋들로 이루어져있다.
- SSTABLE 명?
- 인덱스
블록
GFS 파일
- 블록은 64KB이하의 자료구조이자 GFS파일이다.
- 실제 키/밸류들은 블록에 저장되어있다.
memtable
- 메모리에 할당되어있다.
- 태블릿당 한개
- 쓰기밖에 안됨.
- 할당된 메모리 크기가 다 차서 더이상 쓸 수 없을 때 SSTABLE로 저장한다.
- issue
- 메모리 크기는?
로컬리티 그룹
특정 컬럼 패밀리를 그룹화한것.
커밋로그
- 태블릿의 ID + 쓰려는 키:밸류
- 태블릿의 ID은 태블릿의 가장 마지막 키를 이용해 만든다.
- 태블릿의 ID은 매핑테이블(카탈로그)에서 짧은 ID으로 대체됨.
- 저장공간의 재사용 : 커밋로그는 원형 자료구조를 사용하여 자동으로 공간을 재사용하도록 한다.
- 커밋로그의 가장 마지막 타임스탬프와 memtable의 가장 오래된 타임스탬프와 비교하여 memtable의 타임스탬프가 더 최신이라면 로그삭제가능
- memtable의 T/S가 더 최신이 아니라면 minor compaction을 하여 로그를 비운다.
카탈로그
- 카탈로그의 주소는 chubby에 등록되어있다. (client의 접근을 위해 chubby에 등록)
- 카탈로그 또한 태블릿. TS가 관리한다.
- 카탈로그에 필요한 것
- 태블릿 ID 매핑 테이블
- 컬럼 패밀리 개수
- 클러스터 내의 총 태블릿 개수
- 클러스터 내의 총 row 개수
- 총 SSTABLE 개수
- 총 Tablet Server 개수
- 메타태블릿 주소(?)
- 또?
태블릿 위치 트리/ 태블릿 트래커
루트태블릿, 메타데이터 태블릿, 유저태블릿으로 구성됨. 일반 태블릿과 마찬가지로 SSTABLE로 이루어져있으며 write only임. 자료구조 : B+-트리
- 루트태블릿 : chubby에 위치가 기록된다
- 메타태블릿이 분할될 때(또는 삽입될 때) 갱신됨.
- 메타데이터 태블릿
- 유저태블릿이 분할될 때(또는 삽입될 때) 갱신됨
- 유저태블릿 :
- 저장 데이터
- key : row key?
value : IP