バイナリログ書き込み時の圧縮

(8.0.26)
https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0165
バイナリログトランザクション圧縮

MySQL 8.0.20 から、MySQL サーバーインスタンスでバイナリログトランザクション圧縮を有効にできます。

バイナリログのトランザクション圧縮が有効になっている場合、トランザクションペイロードは zstd アルゴリズムを使用して圧縮され、
単一のイベント (Transaction_payload_event) としてサーバーのバイナリログファイルに書き込まれます。

圧縮トランザクションペイロードは、レプリケーションストリームでレプリカ、他のグループレプリケーショングループメンバー、
または mysqlbinlog などのクライアントに送信されている間、圧縮状態のままです。 

圧縮されたトランザクションペイロードは、それに含まれる個々のイベントを検査する必要がある場合に解凍されます。


select @@binlog_transaction_compression;

デフォルトはOFF

select @@binlog_transaction_compression_level_zstd;

(19c)

書き込み時のREDO圧縮方法は調べたかぎりなし。

REDO転送の圧縮
Oracle Advanced Compressionオプションの機能


DB_UNIQUE_NAME=BOSTON
LOG_ARCHIVE_CONFIG='DG_CONFIG=(BOSTON,CHICAGO,HARTFORD)' 
LOG_ARCHIVE_DEST_2='SERVICE=CHICAGO ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILE, 
PRIMARY_ROLE) REOPEN=60 COMPRESSION=ENABLE  DB_UNIQUE_NAME=CHICAGO' 
LOG_ARCHIVE_DEST_STATE_2='ENABLE' 
LOG_ARCHIVE_DEST_3='SERVICE=HARTFORD SYNC AFFIRM NET_TIMEOUT=30 
VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) REOPEN=60 COMPRESSION=ENABLE   
DB_UNIQUE_NAME=HARTFORD' 
LOG_ARCHIVE_DEST_STATE_3='ENABLE'

(14)

wal_compression

このパラメータがonなら、full_page_writesがonあるいはベースバックアップの際、
PostgreSQLサーバはWALに書き出すフルページイメージを圧縮します。 

圧縮されたページイメージは、WALリプレイのときに伸張されます。 
デフォルト値はoffです。 スーパーユーザだけがこの設定を変更できます。

このパラメータを有効にすると、回復不可能なデータ破壊のリスクを増やすこと無しにWALの量を減らすことができます。 
しかし、WALロギングの際の圧縮のため、またWALリプレイの際には伸張のために余分なCPUを使用するというコストが発生します。

 

(2019)


書き込み時のトランザクションログ圧縮方法は調べたかぎりなし。