Couchbase Rebalance Benchmark Testi

Ezgi Karahan
4 min readApr 14, 2022

--

Bu yazımda Couchbase clusterındaki rebalance sırasında node başına yapılanan maksimum hareket sayısının rebalance süresine göre karşılaştırılması ve etkisinin incelenmesi için yaptığımız testten bahsedeceğim.

Rebalance Nedir?

Couchbasede vbucketlar active ve replica olarak tutulur. Replicalar bucketların yedeğini tutar. Active ve Replica vbucketlar farklı nodelar üzerinde bulunur ve vbucketlar data servis nodeları arasında eşit olarak dağıtılır.

Rebalance , active ve replica vbucketların sırayla ya da aynı anda birden çok vbucketın taşınması işlemidir.Rebalancedan sonra, istekler güncellenmiş konumlarındaki active vbucketlara yönlendirilir.

Rebalance, uygulamaların veri erişimini kesintiye uğratmaz. Vbucket veri aktarımı aşamalar halinde gerçekleşir. Bu yüzden, rebalance herhangi bir nedenle durursa, durdurulduğu noktadan yeniden başlatılabilir.

Rebalance Settings-Advanced Rebalance Settings

Max moves per node during rebalance , her bir nodeda izin verilen maksimum eş zamanlı vbucket hamlesi sayısını belirler.

Rebalance Default Settings

Parametrenin minimum değeri 1, maksimum 64, varsayılan 4'tür.

Test Senaryosu

Total rebalance süremizde değişiklik ve parametreler arasında ki farkı gözlemlemek için bu testi yaptık.

Bu amaçta kullandığımız Couchbase clusterının özellikleri ise ;

  • Total Node Count : 10 Data Node
  • Total Data Size (GB) : 700
  • Node Cpu : 8 Core
  • Node Memory : 32 GB
  • Couchbase Version : 7.0.3 Enterprise
  1. Senaryo

Max moves per node during rebalance ayarını defaultta bıraktığımızda ;

Failover sonrası rebalance süreci 349sn iken nodeu geri ekledikten sonraki rebalance süreci 321sn sürdüğünü gözlemledik ve aslında defaultta node eklerken veya çıkarırken rebalance sürecinde pekte bir fark gözlemleyemedik.

Senaryo 1

2. Senaryo

Max moves per node during rebalance ayarını 8 yaptığımızda ;

Failover sonrası rebalance süreci 58sn iken nodeu geri ekledikten sonraki rebalance süreci 271sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4.5 katı kadar fark gözlemledik.

Hem failover sonrası hem node ekleme sonrasında ki sürelerde kazanç sağladık.

Senaryo 2

3. Senaryo

Max moves per node during rebalance ayarını 16 yaptığımızda ;

Failover sonrası rebalance süreci 67sn iken nodeu geri ekledikten sonraki rebalance süreci 274sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4 katı kadar fark gözlemledik.

Defaulta göre özellikle failover sonrasında ki rebalance süresinde kazanç sağlarken , parametre 8'e göre rebalance sürelerinde kazanç elde edemedik.

Senaryo 3

4. Senaryo

Max moves per node during rebalance ayarını 32yaptığımızda ;

Failover sonrası rebalance süreci 56sn iken nodeu geri ekledikten sonraki rebalance süreci 269sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4.8 katı kadar fark gözlemledik.

Diğer parametre değerlerine göre özellikle failover sonrasında ki rebalance süresinde kazanç sağladık.

Senaryo 4

Görselde parametre değişikliğine göre failover sonrası rebalance toplam zamana etkisi bulunmaktadır.

After Failover Node Remove

Test çıktılarından biri de failover sonrası rebalance süresinin , noda ekledikten sonraki rebalance süresine göre daha az olduğunu gözlemleyebildik.

Rebalance Scenario — Total Time

Tüm parametreler için senaryo sn bazlı total rebalance oranı

Total Rebalance Ratio

Kullandığımız Couhbase clusterlarında Max moves per node during rebalance parametresi default (4) iken test sonucunda 8–16–32 değerleri arasında fazla bir fark olmadığından bizim için değeri 8 yapmamız yeterli olacaktır.

Yüksek parametre , yüksek kaynak tüketimi yapıp rebalance performansını iyileştirebilir veya düşük parametre kaynak tüketimine etkisi olmaz bile rebalance performansını düşürebilir.

Referans

https://docs.couchbase.com/server/current/learn/clusters-and-availability/rebalance.html

https://docs.couchbase.com/server/current/manage/manage-settings/general-settings.html#rebalance-settings-via-cli

https://docs.couchbase.com/server/current/manage/manage-settings/general-settings.html#rebalance-settings-via-rest

Sevgilerrr 😇

--

--