기본 출력 플러그인 콜백 (예 :begin_cb
, Change_CB
, Commit_CB
및message_cb
)는 거래가 실제로 저지른 경우에만 호출됩니다. 변경 사항은 여전히 젠 토토 로그에서 디코딩되지만 Commit의 출력 플러그인으로만 전달됩니다 (및 젠 토토이 중단되는 경우 폐기).
이는 디코딩이 점진적으로 발생하고 메모리 사용을 제어하기 위해 디스크로 유출 될 수 있지만 젠 토토이 최종적으로 저지르는 경우 (또는 더 정확하게는 젠 토토 로그에서 커밋 될 때) 모든 디코딩 된 변경 사항이 전송되어야 함을 의미합니다. 젠 토토의 크기와 네트워크 대역폭에 따라 전송 시간은 적용 지연을 크게 증가시킬 수 있습니다.
대규모 젠 토토으로 인한 적용 지연을 줄이기 위해 출력 플러그인은 진행중인 젠 토토의 증분 스트리밍을 지원하기 위해 추가 콜백을 제공 할 수 있습니다. 필요한 스트리밍 콜백이 여러 개 있습니다 (Stream_start_cb
, Stream_Stop_CB
, Stream_abort_cb
, Stream_commit_cb
및Stream_change_cb
) 및 2 개의 옵션 콜백 (Stream_Message_CB
andStream_truncate_cb
). 또한 2 단계 명령의 스트리밍이 지원 되려면 추가 콜백이 제공되어야합니다. (보다PostgreSQL : 문서 : 15 : 49.10. 논리적 디코딩에 대한 2 단계 젠 토토 결과 지원자세한 내용).
진행중인 젠 토토을 스트리밍 할 때 변경 (및 메시지)이 블록으로 스트리밍됩니다.Stream_Start_CB
andStream_Stop_cb
콜백. 디코딩 된 모든 변경 사항이 전송되면 젠 토토은를 사용하여 커밋 될 수 있습니다.Stream_commit_cb
콜백 (또는 |Stream_abort_cb
콜백). 2 단계 커밋이 지원되면 거래는를 사용하여 준비 할 수 있습니다.Stream_prepare_cb
콜백,준비
사용commit_prepared_cb
콜백 또는 |Rollback_prepared_cb
.
스트리밍 콜백의 한 예 시퀀스 하나의 젠 토토에 대한 예제는 다음과 같습니다.
Stream_start_cb (...); <- 첫 번째 변경 블록의 시작 stream_change_cb (...); stream_change_cb (...); stream_message_cb (...); stream_change_cb (...); ... stream_change_cb (...); stream_stop_cb (...); <- 첫 번째 변경 블록의 끝 stream_start_cb (...); <- 두 번째 변경 사항의 시작 stream_change_cb (...); stream_change_cb (...); stream_change_cb (...); ... stream_message_cb (...); stream_change_cb (...); stream_stop_cb (...); <- 두 번째 변경 사항의 끝 [에이. 일반 커밋을 사용할 때] stream_commit_cb (...); <- 스트리밍 된 트랜잭션의 커밋 [비. 2 단계 커밋을 사용할 때] stream_prepare_cb (...); <- 스트리밍 된 트랜잭션을 준비하십시오 commit_prepared_cb (...); <- 준비된 거래의 커밋
실제 콜백 호출 시퀀스는 물론 더 복잡 할 수 있습니다. 여러 스트리밍 젠 토토에 대한 블록이있을 수 있으며 일부 거래는 중단 될 수 있습니다.
Spill-to-Disk 동작과 유사하게, 스트리밍은 WAL에서 해독 된 총 변경량 (모든 진행중인 젠 토토의 경우)이 정의 된 한계를 초과 할 때 트리거됩니다.logical_decoding_work_mem
설정. 이 시점에서 가장 큰 최상위 트랜잭션 (현재 디코딩 된 변경에 사용되는 메모리 양으로 측정)이 선택되고 스트리밍됩니다. 그러나 경우에 따라 메모리 임계 값을 초과하지만 완전한 튜플을 디코딩하지 않았기 때문에 스트리밍이 활성화되어 있어도 디스크에 유출되어야합니다.
큰 젠 토토을 스트리밍 할 때에도 변경 사항은 여전히 커밋 순서로 적용되어 비 스트리밍 모드와 동일한 보증을 유지합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면