Tüm Ürünler
Search
Belge Merkezi

ApsaraDB RDS:Modify WRITESET-related parameters

Son Güncelleme:Oct 03, 2026

Birincil-ikincil çoğaltmada varsayılan COMMIT_ORDER mekanizması paralel yeniden oynatmayı birincil RDS örneğinde işlemlerin paralel olarak işlenip işlenemeyeceğine göre belirler. Bu durum yeniden oynatma paralelliğini birincil örneğin eşzamanlılığıyla sınırlar. WRITESET işlem çakışmalarını satır düzeyinde algılayarak bu sınırı ortadan kaldırır ve birincil ile ikincil RDS örnekleri arasındaki çoğaltma gecikmesini azaltır.

WRITESET nasıl çalışır?

COMMIT_ORDER kullanıldığında iki işlem yalnızca birincil RDS örneğinde paralel olarak işlenebiliyorsa paralel olarak yeniden oynatılabilir.

WRITESET her işlemin değiştirdiği veri satırlarının diğer işlemler tarafından değiştirilen satırlarla çakışıp çakışmadığını denetler. Çakışma yoksa işlemler birincil RDS örneğinde nasıl işlendiğinden bağımsız olarak ikincil RDS örneğinde paralel olarak yeniden oynatılır.

Desteklenen sürümler

RDS örneği aşağıdaki MySQL sürümlerinden birini çalıştırmalıdır:


MySQL sürümü


Minimum küçük motor sürümü


MySQL 5,7


20211231


MySQL 8,0


20210930

WRITESET'i etkinleştirin

Aşağıdaki üç parametreyi ayarlayın. Talimatlar için Örnek parametrelerini değiştirin konusuna bakın.

transaction_write_set_extraction = XXHASH64
binlog_transaction_dependency_tracking = WRITESET
binlog_transaction_dependency_history_size = 500000
Not

binlog_transaction_dependency_history_size çakışma tespiti için bellekte saklanan maksimum veri satırı sayısını ayarlar. Daha yüksek bir değer daha fazla veri satırını izler ve paralelliği artırır.

Parametre bağımlılıkları

Uyarı

binlog_transaction_dependency_tracking ve transaction_write_set_extraction birbirini etkiler. Aşağıda listelenen geçerli kombinasyonları kullanın. Geçersiz kombinasyonlar engellenir.


binlog_transaction_dependency_tracking


transaction_write_set_extraction


COMMIT_ORDER


OFF veya XXHASH64


WRITESET veya WRITESET_SESSION


XXHASH64

Parametre başvurusu

binlog_transaction_dependency_tracking

İkili günlüklerde kaydedilen işlemlerin ikincil RDS örneğinde paralel olarak nasıl yeniden oynatılacağını belirler.

Çok iş parçacıklı paralel yeniden oynatma için replica_parallel_workers veya slave_parallel_workers değerinin 0'dan büyük olması gerekir.


Nitelik


Değer


Varsayılan


WRITESET


Geçerli değerler


COMMIT_ORDER, WRITESET, WRITESET_SESSION


Desteklenen sürümler


MySQL 5,7 (küçük motor sürümü 20211231 ve üzeri), MySQL 8,0 (küçük motor sürümü 20210930 ve üzeri)


Değer


Açıklama


COMMIT_ORDER


Bağımlılıkları işleme sırasına göre belirler. Birincil RDS örneğinde paralel olarak işlenebilen iki işlem ikincil RDS örneğinde de paralel olarak yeniden oynatılabilir. Bu mod birincil RDS örneğindeki paralellik ayarlarından etkilenir.


WRITESET


Bağımlılıkları satır düzeyinde belirler. Birincil anahtarı veya benzersiz anahtarı olan bir tablodaki aynı veri satırını değiştirmeyen iki işlem paralel olarak yeniden oynatılır. Bu mod birincil RDS örneğindeki paralellik ayarlarından etkilenmez.


WRITESET_SESSION


Aynı oturumdaki işlemler seri olarak yeniden oynatılır. Farklı oturumlardaki işlemler WRITESET ile aynı kuralları izler.

transaction_write_set_extraction

Veri satırının karma değerini hesaplamak için kullanılan karma algoritmasını belirtir. Karma değeri farklı işlemlerin aynı veri satırını değiştirip değiştirmediğini belirler.


Nitelik


Değer


Varsayılan


XXHASH64


Geçerli değerler


OFF, XXHASH64


Desteklenen sürümler


MySQL 5,7 (küçük motor sürümü 20211231 ve üzeri), MySQL 8,0 (küçük motor sürümü 20210930 ve üzeri)


Değer


Açıklama


OFF


Veri satırlarının karma değerini hesaplamaz. Bu değer ayarlandığında WRITESET devre dışı bırakılmalıdır.


XXHASH64


64 bitlik bir karma algoritması kullanarak veri satırlarının karma değerini hesaplar.

binlog_transaction_dependency_history_size

Çakışma tespiti için bellekte saklanacak maksimum veri satırı sayısını belirtir.


Nitelik


Değer


Önerilen değer


500000


Etki


Daha yüksek bir değer daha fazla veri satırını izler ve daha yüksek paralellik sağlar.

WRITESET ne zaman geçersiz hale gelir?

Bazı senaryolarda WRITESET işlem çakışma tespiti için COMMIT_ORDER moduna geri döner. Bu geri dönüş ikincil RDS örneğindeki paralel yeniden oynatma performansını düşürmez.

WRITESET şu durumlarda geçersiz hale gelir:

  • DDL işlemleri gerçekleştirildiğinde

  • Büyük işlemler işlendiğinde

  • Yabancı anahtar tabloları değiştirildiğinde

  • Birincil anahtarı olmayan tablolar bulunduğunda

İkincil ve salt okunur RDS örnekleriniz arasında çoğaltma gecikmesi varsa bu gecikmeyi azaltmak için WRITESET'i etkinleştirin.

Başvuru kaynakları