Gọi cho plugin đầu ra cơ bản (ví dụ:BEGIN_CB
, Change_cb
, cam kết_cb
vàmessage_cb
) chỉ được gọi khi kèo bóng đá hom nay thực sự cam kết. Các thay đổi vẫn được giải mã từ nhật ký kèo bóng đá hom nay, nhưng chỉ được chuyển sang plugin đầu ra tại cam kết (và bị loại bỏ nếu phá thai kèo bóng đá hom nay).
Điều này có nghĩa là trong khi việc giải mã xảy ra tăng dần và có thể tràn vào đĩa để kiểm soát việc sử dụng bộ nhớ, tất cả các thay đổi được giải mã phải được truyền khi kèo bóng đá hom nay cuối cùng thực hiện (hoặc chính xác hơn là khi cam kết được giải mã khỏi nhật ký kèo bóng đá hom nay). Tùy thuộc vào kích thước của băng thông kèo bóng đá hom nay và mạng, thời gian chuyển có thể làm tăng đáng kể độ trễ áp dụng.
Để giảm độ trễ áp dụng do các kèo bóng đá hom nay lớn, một plugin đầu ra có thể cung cấp cuộc gọi lại bổ sung để hỗ trợ phát trực tuyến các kèo bóng đá hom nay đang tiến triển. Có nhiều cuộc gọi lại phát trực tuyến cần thiết (stream_start_cb
, stream_stop_cb
, stream_abort_cb
, stream_commit_cb
vàstream_change_cb
) và hai cuộc gọi lại tùy chọn (stream_message_cb
vàstream_truncate_cb
). Ngoài ra, nếu phát trực tuyến kèo bóng đá hom nay lệnh hai pha sẽ được hỗ trợ, thì phải cung cấp kèo bóng đá hom nay cuộc gọi lại bổ sung. (Nhìn thấyPhần 47.10để biết chi tiết).
Khi phát trực tuyến một kèo bóng đá hom nay đang diễn ra, các thay đổi (và tin nhắn) được truyền phát trong các khối được phân định bởistream_start_cb
vàstream_stop_cb
gọi lại. Khi tất cả các thay đổi được giải mã được truyền đi, kèo bóng đá hom nay có thể được cam kết bằng cách sử dụngstream_commit_cb
gọi lại (hoặc có thể bị hủy bỏ bằng cách sử dụngstream_abort_cb
gọi lại). Nếu các cam kết hai pha được hỗ trợ, kèo bóng đá hom nay có thể được chuẩn bị bằng cách sử dụngstream_prepare_cb
Callback,Cam kết đã chuẩn bị
sử dụngcomme_prepared_cb
gọi lại hoặc bị hủy bỏ bằng cách sử dụngrollback_prepared_cb
.
Một ví dụ trình tự gọi lại các cuộc gọi lại cho một kèo bóng đá hom nay có thể trông giống như thế này:
stream_start_cb (...); <- Bắt đầu khối thay đổi đầu tiên stream_change_cb (...); stream_change_cb (...); stream_message_cb (...); stream_change_cb (...); ... stream_change_cb (...); stream_stop_cb (...); <- Kết thúc khối thay đổi đầu tiên stream_start_cb (...); <- Bắt đầu khối thứ hai của các thay đổi stream_change_cb (...); stream_change_cb (...); stream_change_cb (...); ... stream_message_cb (...); stream_change_cb (...); stream_stop_cb (...); <- Kết thúc khối thứ hai của các thay đổi [Một. Khi sử dụng cam kết bình thường] stream_commit_cb (...); <- Cam kết của kèo bóng đá hom nay được phát trực tuyến [b. Khi sử dụng cam kết hai pha] stream_prepare_cb (...); <- Chuẩn bị kèo bóng đá hom nay được phát trực tuyến cam kết_prepared_cb (...); <- cam kết của kèo bóng đá hom nay đã chuẩn bị
chuỗi các cuộc gọi gọi lại thực tế có thể phức tạp hơn, tất nhiên. Có thể có các khối cho nhiều kèo bóng đá hom nay được phát trực tuyến, một số kèo bóng đá hom nay có thể bị hủy bỏ, v.v.
10954_11132Logical_decoding_work_mem
Cài đặt. Tại thời điểm đó, kèo bóng đá hom nay cấp cao nhất (được đo bằng lượng bộ nhớ hiện đang được sử dụng để thay đổi được giải mã) được chọn và phát trực tuyến. Tuy nhiên, trong một số trường hợp, chúng tôi vẫn phải tràn vào đĩa ngay cả khi phát trực tuyến được bật vì chúng tôi vượt quá ngưỡng bộ nhớ nhưng vẫn chưa giải mã được bộ hoàn toàn, ví dụ, chỉ được giải mã trên bàn nướng nhưng không phải là phần chèn chính.
Ngay cả khi phát trực tuyến các kèo bóng đá hom nay lớn, các thay đổi vẫn được áp dụng theo thứ tự cam kết, bảo tồn các đảm bảo tương tự như chế độ không phát trực tuyến.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.