MyBB 1.4 Çoklu SQL Sunucu Desteği

Chris Boulton’un yazdığı bir makalede sunucu yükü fazla olan siteler için MyBB 1.4 sürümünde sunduğu çözüm yolları dikkatimi çekti. Bu konuya değinmemin nedeni ise bazı MyBB sitelerin buna gerçekten ihtiyaç duymasıdır.

MyBB 1.4 Çoklu SQL Sunucu Desteği

MyBB 1.4 ilk geliştirildiği günden beri, MyBB 1.2′ye göre kod sayısı iki kat artırılmıştır. Her iki sürümü karşılaştıracak olursak:

MyBB 1.2:
Kaynakta yer alan kod satır sayısı: 65,165
Yorum sayısı: 6,994

MyBB 1.4:
Kaynakta yer alan kod satır sayısı: 113,503
Yorum sayısı: 13,722

Geliştirildiği ilk günden beri MyBB 1.4 sürümüne yeni özellikler eklenmektedir. Yeni özellikler ve artan satır sayısı SQL sunucunun daha fazla yorulacağı anlamına geliyor. Bu yüzden çok büyük sitelerin tek bir sunucuya yükü artacaktır. İşte bu yükü en aza indirmek için çoklu SQL sunucu kullanabilme gibi bazı yeni özelliklerin de eklendiğini görüyoruz.

MyBB 1.4 ile PostgreSQL, SQLite 2 ve SQLite 3 tamamıyla desteklenecektir. En önemlisi de sunucu teknolojisinde mevcut master/slave (usta/çırak) ilişkisinin 1.4 ile desteklenebilir olmasıdır.

Ziyaretçi sayısı çok fazla olan sitelerin birden fazla sunucu kullanması mevcut yükü azaltacaktır. Bu nedenle çok sayıda sunucuyu destekleyebilme özelliği config.php dosyasından ayarlanabilecektir.

$config['database']['type'] = 'mysqli';
$config['database']['read']['database'] = 'mybb';
$config['database']['read']['table_prefix'] = 'mybb_';
$config['database']['read']['hostname'] = 'localhost_read_address';
$config['database']['read']['username'] = 'root';
$config['database']['read']['password'] = '';

$config['database']['write']['database'] = 'mybb';
$config['database']['write']['table_prefix'] = 'mybb_';
$config['database']['write']['hostname'] = 'localhost_write_address';
$config['database']['write']['username'] = 'root';
$config['database']['write']['password'] = '';

Yukarıda görüldüğü gibi iki farklı SQL sunucu kullanılmakta olup bunlardan birincisi veritabanında mevcut bilgilerin okunması üzerine; diğeri ise gönderilen yazıların depolanma işlevini yürüten sunucu olacaktır. Bunların sayısını artırmak mümkündür.

Aşağıdaki örneğimizde config.php dosyasında dört adet sunucu eklendiğini görüyoruz:

$config['database']['type'] = 'mysqli';
$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';

$config['database']['read'][]['database'] = 'mybb';
$config['database']['read'][]['table_prefix'] = 'mybb_';
$config['database']['read'][]['hostname'] = 'localhost_read_address2';
$config['database']['read'][]['username'] = 'root';
$config['database']['read'][]['password'] = '';

$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';

$config['database']['write'][]['database'] = 'mybb';
$config['database']['write'][]['table_prefix'] = 'mybb_';
$config['database']['write'][]['hostname'] = 'localhost_write_address2';
$config['database']['write'][]['username'] = 'root';
$config['database']['write'][]['password'] = '';

Yukarıdaki örneğe değinecek olursak, diyelim ki iki tane okuma işlevini yürüten sunucu belirttik. Mevcut şartlar gereği bunlardan sadece bir tanesi rastgele seçilecektir. Chris Boulton şuan için yükü en az olan sunucuyu tespit ederek yükü dengeleme gibi bir özelliğin henüz geliştirilmediğini belirtiyor. Yine de o an için rastgele bir sunucunun seçilecek olması yükün hafiflemesini sağlayacaktır. Diğer bir ifadeyle tüm bu işlemler her iki sunucu arasında rastgele paylaştırılmış olacaktır.

Gerçekten bunu kayda değer bir gelişme olarak görüyorum. MyBB 1.4 sürümünün geliştirilmesinde emeği geçen herkes teşekkürü hak ediyor…

If you liked my post, feel free to subscribe to my rss feeds

Post a Comment

You must be logged in to post a comment.


Bu sitede yayınlanan tüm yazılar İlyas Canbay tarafından kaleme alınmıştır. İzinsiz yayınlanamaz. Her hakkı saklıdır.