/** {@code windowstore.changelog.additional.retention.ms} */
@SuppressWarnings("WeakerAccess")
public static final String WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG = "windowstore.changelog.additional.retention.ms";
private static final String WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_DOC = "Added to a windows maintainMs to ensure data is not deleted from the log prematurely. Allows for clock drift. Default is 1 day";
Added to a windows maintainMs to ensure data is not deleted from the log prematurely. Allows for clock drift. Default is 1 day
체인지 로그가 너무 빨리 사라지지 않도록 windows maintainMs에 추가하는 시간. 기본값은 1시간.
질문
KStream 조인을 사용하여 데이터를 처리중인데 OOM이 발생함. rocksDB의 로컬 스토리지 데이터가 지속적으로 늘어나는 것을 확인함. 이를 해소하기 위한 방법은?
답변
윈도우 사이즈와 로컬 스토리지의 사용 예상량은 항상 일치하지 않는다. join시 grace period와 관련 있음. out-of-record를 다루기 위해 데이터는 윈도우 사이즈보다 더 많은 양을 가지고 있을 수 있다.
신규 버전에서는 다음과 같이 설정한다.
JoinWindows.ofTimeDifferenceAndGrace(...)
예전 버전에서는 다음과 같이 설정하는데 기본값은 24시간 grace period이다.
JoinWindows.of(...).grace(...)
반면, WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG 옵션은 클러스터에 change_log를 얼마나 보관할 것인지 설정하는 것임. 그러므로 데이터 저장량과는 별개라고 볼 수 있다.
반응형
'빅데이터 > Kafka' 카테고리의 다른 글
토픽을 GlobalKTable 구체화된 뷰(view) 키-값 저장소로 사용시 특이점 및 주의사항 (0) | 2022.09.15 |
---|---|
카프카 커넥트/커넥터 내부 살펴보기 - 2.8기준, sinkTask 위주로 (2) | 2022.08.30 |
ConnectException: Exiting WorkerSinkTask due to unrecoverable exception 이슈란? (0) | 2022.08.03 |
초급자를 위한 [아파치 카프카 애플리케이션 개발]온라인 강의를 출시하였습니다. (0) | 2022.06.02 |
카프카를 활용한레이싱카 센서 실시간 수집 데이터 파이프라인 구축 (4) | 2022.05.02 |
Kafka Producer JMX exporter 사용하기 (3) | 2022.04.19 |