가비지 컬렉션 개요
이 페이지에서는 Bigtable에서의 가비지 컬렉션 작동 방법과 다음 주제를 설명합니다.
- 가비지 컬렉션 유형
- 기본 가비지 컬렉션 설정
- 데이터 삭제 시점
- 복제된 테이블의 가비지 컬렉션 정책 변경
가비지 컬렉션 개요
가비지 컬렉션은 Bigtable 테이블에서 만료되어 사용되지 않는 데이터를 지속적으로 자동 삭제하는 프로세스입니다. 가비지 컬렉션 정책은 개발자가 만든 규칙 집합으로 특정 column family의 데이터가 더 이상 필요하지 않은 시점을 나타냅니다.
가비지 컬렉션은 압축 중에 발생하는 기본 제공 비동기 백그라운드 프로세스입니다. 가비지 컬렉션은 삭제해야 하는 데이터 양에 관계없이 고정된 일정에 수행됩니다. 데이터는 삭제될 때까지 읽기 결과에 나타납니다. 읽을 때 필터를 사용하면 결과에서 이 데이터를 제외할 수 있습니다.
자세한 내용은 이 문서의 데이터 삭제 시 섹션을 참고하세요.
가비지 컬렉션 정책의 이점은 다음과 같습니다.
- 행 크기 최소화 - 항상 행 크기가 무제한으로 커지지 않도록 해야 합니다. 행 크기가 커지면 성능에 부정적인 영향을 줍니다. 이상적인 행 크기는 100MB 이내, 한도는 256MB이어야 합니다. 이전 데이터나 현재 데이터의 이전 버전을 유지할 필요가 없는 경우 가비지 컬렉션을 사용하면 각 행의 크기를 최소화할 수 있습니다.
- 비용 절감 - 가비지 컬렉션은 더 이상 필요하지 않거나 사용하지 않는 데이터의 저장 비용을 지불하지 않도록 해줍니다. 만료되거나 사용하지 않는 데이터의 스토리지 비용은 압축이 수행되고 가비지 컬렉션 대상 데이터가 삭제될 때까지 부과됩니다. 일반적으로 이 프로세스는 며칠에서 최대 일주일까지 소요될 수 있습니다.
프로그래매틱 방식으로 또는 cbt CLI를 사용하여 가비지 컬렉션 정책을 설정할 수 있습니다. 가비지 컬렉션 정책은 column family 수준에서 설정됩니다.
테이블의 각 column family마다 자체 가비지 컬렉션 정책이 있습니다. 가비지 컬렉션 프로세스에서는 각 column family의 현재 가비지 컬렉션 정책을 조회한 후 정책 규칙에 따라 데이터를 삭제합니다.
타임스탬프
Bigtable에서 행과 열의 교차 부분에는 교차 부분 타임스탬프 값 버전이 포함된 셀이 여러 개 있을 수 있습니다. 각 셀에는 타임스탬프가 있습니다. 타임스탬프는 Unix epoch(