데이터 보존(Data Retention)
개요
출처: 문서
본문
lakeFS는 데이터의 모든 버전을 보관해요. 이 약속에는 계획할 가치가 있는 대가가 따라요: 여러분이 요청하지 않는 한 아무것도 객체 스토어를 떠나지 않아요. 은퇴한 데이터셋, 삭제되지 않은 채 남은 임시 데이터, 방치된 브랜치가 시간이 지나며 쌓이고, 그에 따라 스토리지 비용과 컴플라이언스 노출이 커져요.
lakeFS의 데이터 보존은 각각 다른 종류의 잡동사니를 제거하는 세 가지 기능으로 처리돼요:
-
Object Lifecycle은 여러분이 프리픽스와 나이에 대해 정의한 규칙에 따라 선택한 브랜치의 객체를 만료시켜요.
-
Branch Lifecycle은 이름 패턴에 일치하고 나이 또는 비활성 임계값을 넘은 오래된 브랜치를 삭제해요.
-
Garbage Collection은 그 객체들을 참조했던 모든 브랜치가 놓아주고 보존 기간이 지난 뒤, 기반 스토리지에서 객체를 영구 제거해요.
셋은 서로 대체재가 아니라 상호 보완적이고, 완전한 보존 정책은 보통 셋 모두를 필요로 해요.
각 기능이 하는 일
| Feature | What it removes | Where it acts | Reclaims storage |
|---|---|---|---|
| Object Lifecycle | 보존 기간보다 오래되고 프리픽스에 일치하는 커밋된 객체 | 규칙에서 지명한 대상 브랜치 | No |
| Branch Lifecycle | 나이 또는 비활성으로 오래된 브랜치 레퍼런스 | 정책 패턴에 일치하는 브랜치 (기본 브랜치 제외) | No |
| Garbage Collection | 객체 스토어 안의 객체 데이터 | 기반 스토리지 | Yes |
어떻게 맞물리나요
lakeFS에서 객체를 삭제해도 어떤 바이트도 지워지지 않아요. 삭제는 커밋의 변경으로 기록되기 때문에 이전 커밋에는 여전히 그 객체가 있고, 그 히스토리를 가리키는 브랜치나 태그는 여전히 그것으로 해석돼요.
가비지 컬렉션만이 스토리지를 해방하는 기능이며, 살아 있는 레퍼런스가 닿지 않고 한번 담았던 모든 브랜치에서 보존 기간이 지난 객체만 제거해요. Object Lifecycle과 Branch Lifecycle이 바로 그 조건을 만들어 주는 거예요: 하나는 오래 사는 브랜치의 데이터를 은퇴시키고, 다른 하나는 그 데이터를 계속 붙잡게 만드는 수명 짧은 브랜치를 은퇴시키죠.
flowchart LR
A["<b>Object Lifecycle</b><br/>expires objects by rule<br/>on target branches"] --> B["<b>Branch Lifecycle</b><br/>deletes stale branches<br/>still referencing them"]
B --> C["<b>Garbage Collection</b><br/>hard-deletes unreferenced<br/>objects from storage"]
보존의 세 단계. 스토리지는 셋이 모두 제 몫을 마친 뒤에야 해방돼요.
어디서 시작할까요
목표가 스토리지 비용 절감이라면 가비지 컬렉션부터 시작하세요. 실제로 데이터를 삭제하는 유일한 기능이니까요. 그리고 팀이 필요로 하는 과거 거리에 맞는 보존 규칙을 설정하세요. 그다음 무한정 늘어나는 커밋된 프리픽스(어떤 파이프라인도 삭제하지 않는 랜딩 존과 스테이징 경로 같은)에 Object Lifecycle 규칙을, 그리고 워크플로가 만들어내는 수명 짧은 브랜치 패턴에 Branch Lifecycle 정책을 더하세요.
목표가 보존 의무 이행이라면, 예를 들어 아무것도 3년 이상 살지 못하게 보장하거나 개인 데이터를 고정된 기간 안에 제거하는 것이라면 Object Lifecycle부터 시작하세요. 이 기능이 그 의무를 감사 가능한 리포지토리 수준 규칙으로 표현하고, 수행하는 모든 정리는 커밋과 감사 로그 항목으로 기록돼요. 물리적 삭제도 여러분의 기간 안에 착지하도록 가비지 컬렉션 보존 기간을 충분히 짧게 짝지으세요.
더 알아보기 (Learn more)
공식 문서의 데이터 보존 페이지는 https://docs.lakefs.io/data-retention 에서 확인할 수 있어요.