본문 바로가기

빅데이터/Kafka

WINDOW STORE CHANGE LOG ADDITIONAL RETENTION MS CONFIG 옵션 분석

/** {@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시간.

 

https://stackoverflow.com/questions/55119443/kafka-kstream-kstream-joins-with-sliding-window-memory-usage-grows-over-the-time

 

Kafka kstream-kstream joins with sliding window memory usage grows over the time till OOM

I'm having a problem using kstream joins. What i do is from one topic i seperate 3 different types of messages to new streams. Then do one innerjoin with two of the streams which creates another s...

stackoverflow.com

질문

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를 얼마나 보관할 것인지 설정하는 것임. 그러므로 데이터 저장량과는 별개라고 볼 수 있다.

반응형