Multi-threaded replica'yı ayarla (replica_parallel_workers)
MySQLReplikasyonKomut
-- Replica: applier'i durdur, worker sayisini ve commit sirasini ayarla
STOP REPLICA SQL_THREAD;
SET PERSIST replica_parallel_workers = 8;
SET PERSIST replica_preserve_commit_order = ON;
START REPLICA SQL_THREAD;
SELECT COUNT(*) AS workers FROM performance_schema.replication_applier_status_by_worker;
-- Source (yalniz 8.0): bagimlilik takibini WRITESET yap (8.4'te varsayilan, degisken kaldirildi)
SET PERSIST binlog_transaction_dependency_tracking = WRITESET;Ne yapar?
Replikada transaction'ları paralel uygulayan worker sayısını ayarlar; replica_preserve_commit_order commit sırasını kaynaktakiyle aynı tutar. Kaynakta WRITESET bağımlılık takibi, aynı satırlara dokunmayan transaction'ların kaynakta seri commit edilmiş olsalar bile paralel uygulanmasını sağlar.
Ne zaman kullanılır?
Replica, kaynağın yazma hızına yetişemeyip lag biriktiriyorsa ve applier fiilen tek thread'de çalışıyorsa.
Dikkat
Worker sayısı değişikliği applier yeniden başlatılınca etkili olur. Worker'ları CPU çekirdeğinden fazla açmak koordinasyon yükü getirir; 8–16 aralığından başla, lag ve worker hatalarını izle. Tek bir büyük transaction veya PK'sız tabloda yoğun DML paralelleştirilemez; kalıcı lag'in asıl nedeni çoğu zaman budur. replica_preserve_commit_order=OFF daha fazla paralellik verir ama replikada kısa süreli sıra dışı commit görülür; okuma trafiği alan replikada ON bırak.