Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Bigtable/DataModel

From ZeroWiki
Revision as of 10:59, 9 August 2011 by imported>rabierre

[[pagelist(^Bigtable)]]

구조

테이블 -> 태블릿 -> SSTABLE -> memtable & block

테이블

  1. Key - value
    1. row key : url(또는 데이터값의 대표, 제목등)
    2. column family : column 종류
    3. 앵커
    4. 콘텐츠(제목?) <- value와 뭐가 다른거지?
    5. Time Stamp
    6. value : 해당 사이트/키와 매핑되는 구조화된 데이터값

태블릿

태블릿을 모두 합병하면 테이블이 된다. 태블릿은 SSTABLE들로 이루어져있다.

  1. 태블릿의 이름은 : 마지막 키:밸류 -> 카탈로그에 매핑필요??
  2. 태블릿은 하나 이상의 row로 구성됨.
  3. 하나의 row는 하나의 태블릿에만 존재한다.

SPLIT

  1. 트리거 : 태블릿 크기가 200MB 이상일때

SSTABLE

SSTABLE은 하나의 memtable과 block의 시작주소와 오프셋들로 이루어져있다.

  1. SSTABLE 명?
  2. 인덱스

블록

GFS 파일

  1. 블록은 64KB이하의 자료구조이다.
  2. 블록은 항상 64kb이어야 할 필요는 없다.
  3. 실제 키/밸류들은 블록에 저장되어있다.

memtable

  1. 메모리에 할당되어있다.
  2. 쓰기밖에 안됨.
  3. 할당된 메모리 크기가 다 차서 더이상 쓸 수 없을 때 SSTABLE로 저장한다.
  • issue
    1. 메모리 크기는?

로컬리티 그룹

커밋로그

  1. 태블릿의 이름 + 쓰려는 키:밸류
    1. 태블릿의 이름은 태블릿의 가장 마지막 키를 이용해 만든다.
    2. 태블릿의 이름은 매핑테이블(카탈로그)에서 짧은 이름으로 대체됨.
  2. 커밋로그의 가장 마지막 타임스탬프와 memtable의 가장 오래된 타임스탬프와 비교하여 memtable의 타임스탬프가 더 최신이라면 로그삭제가능

B+-트리

루트태블릿, 메타테블릿, 유저태블릿으로 구성됨. write only

  1. key : row key?
value : IP