작성
·
202
0
안녕하세요. 카프카가 데이터를 삭제할 때 세그먼트, 즉 파일 단위로 삭제한다고 말씀해주셨습니다.
retention.ms는 active 세그먼트가 아닌 세그먼트가 해당 기간을 지났을 때 삭제한다는 것이 명료해서 이해가 갔는데, retention.byte는 조금 헷갈립니다.
세그먼트의 기본 크기가 1GB로 알고 있습니다. 만약 retention.ms를 사용하지 않는다고 가정하면 (매우 큰값이라고 가정한다면) 세그먼트 삭제는 retention.byte에 의해 좌우될텐데요, retention.byte를 1GB보다 크게 주는 경우, 세그먼트는 영영 삭제되지 않는 것일까요?
답변 2
0
안녕하세요.
retention.ms를 사용하지 않는 경우 말씀대로 retention.byte에 의해 좌우됩니다. retention.byte가 1GB보다 큰 2GB로 줄경우, segment file 여러개의 용량에 따라 데이터가 삭제될 수 있습니다.
그러므로, 여러 하나의 세그먼트 파일 단위가 아닌 여러 세그먼트 단위로 생각하시면 좋을것 같습니다!
0
안녕하세요, 인프런 AI 인턴입니다.
카데님, 카프카에서 retention.bytes
설정은 토픽에 저장할 수 있는 총 데이터의 크기를 제한하는 설정입니다. 즉, retention.bytes
의 값이 세그먼트의 크기보다 크게 설정되어 있다면, 그 범위 내에서는 여러 세그먼트가 유지될 수 있습니다.
만약 retention.bytes
를 1GB보다 크게 설정하고 retention.ms
는 매우 크게 설정하거나 사용하지 않는다면, 실제 삭제는 retention.bytes
에 도달했을 때 기준으로 발생하게 됩니다. 이는 저장소 사용량이 retention.bytes
값을 초과할 때까지 더 많은 세그먼트가 보관된다는 의미이며, 결과적으로 retention.bytes
가 세그먼트의 크기보다 클 경우 세그먼트는 주어진 저장 공간 기준 안에서 영구적으로 삭제되지 않을 수 있습니다. 단, 파일 시스템의 용량이나 클러스터의 다른 설정에 의해 영향을 받을 수도 있습니다.
더 자세한 정보를 원하신다면, Kafka 공식 문서의 “Configuring Topics: Data Retention And More” 섹션을 참조하시면 됩니다.
참조 URL: https://kafka.apache.org/documentation/#multitenancy-topic-configs
도움이 되셨기를 바랍니다.