49.9. 논리적 디코딩을위한 대규모 스포츠 토토 베트맨 스트리밍

기본 출력 플러그인 콜백 (예 :begin_cb, Change_CB, Commit_CBandmessage_cb)는 거래가 실제로 저지른 경우에만 호출됩니다. 변경 사항은 여전히 ​​스포츠 토토 베트맨 로그에서 디코딩되지만 Commit의 출력 플러그인으로만 전달됩니다 (및 스포츠 토토 베트맨이 중단되는 경우 폐기).

이것은 디코딩이 점진적으로 발생하고 메모리 사용량을 제어하기 위해 디스크로 유출 될 수 있음을 의미합니다. 스포츠 토토 베트맨이 최종적으로 저격 할 때 (또는 더 정확하게는 스포츠 토토 베트맨 로그에서 커밋 될 때) 모든 디코딩 된 변경 사항이 전송되어야 함을 의미합니다. 스포츠 토토 베트맨의 크기와 네트워크 대역폭에 따라 전송 시간은 적용 지연을 크게 증가시킬 수 있습니다.

대규모 스포츠 토토 베트맨으로 인한 적용 지연을 줄이기 위해 출력 플러그인은 진행중인 스포츠 토토 베트맨의 증분 스트리밍을 지원하기 위해 추가 콜백을 제공 할 수 있습니다. 필요한 스트리밍 콜백이 여러 개 있습니다 (Stream_start_cb, Stream_Stop_cb, Stream_abort_cb, Stream_commit_cband​​Stream_change_cb) 및 2 개의 옵션 콜백 (Stream_Message_CBandStream_truncate_cb).

진행중인 스포츠 토토 베트맨을 스트리밍 할 때 변경 (및 메시지)이 블록으로 스트리밍됩니다.Stream_start_cbandStream_Stop_cb콜백. 디코딩 된 모든 변경 사항이 전송되면 THE를 사용하여 거래를 커밋 할 수 있습니다.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 (...);  <- 스트리밍 된 트랜잭션 커밋

실제 콜백 호출 시퀀스는 물론 더 복잡 할 수 있습니다. 여러 스트리밍 스포츠 토토 베트맨에 대한 블록이있을 수 있으며 일부 거래는 중단 될 수 있습니다.

Spill-to-Disk 동작과 유사하게, WAL에서 해독 된 총 변경량 (모든 진행중인 스포츠 토토 베트맨의 경우)이 |logical_decoding_work_mem설정. 이 시점에서 가장 큰 최상위 트랜잭션 (현재 디코딩 된 변경에 사용되는 메모리 양으로 측정)이 선택되고 스트리밍됩니다. 그러나 경우에 따라 메모리 임계 값을 초과하지만 완전한 튜플을 디코딩하지 않았기 때문에 스트리밍이 활성화되어 있어도 디스크에 유출되어야합니다.

큰 스포츠 토토 베트맨을 스트리밍 할 때에도 변경 사항은 여전히 ​​커밋 순서로 적용되어 비 스트리밍 모드와 동일한 보증을 유지합니다.

정정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면