Bir geliştirici perspektifinden, hemen hemen her geleneksel ana veritabanı motorunun sadece ölçeklendirilebildiğini ve ölçeklendirilebileceğini söyleyebilirim.
Son yıllarda daha fazla ölçeklenebilirlik ve yüksek oranda kullanılabilir sistemlere ihtiyaç duyulduğunda, mevcut veritabanlarının ölçeklendirilmesine yönelik çabalar olmuştur. Ancak tasarımlar eski kod tarafından engellendiğinden, tasarımın temelinden ziyade çok fazla cıvatalı. İyi bilinen veritabanı motorlarının çoğunu ölçeklendirmeye çalışırsanız, bununla karşılaşırsınız. Slave sunucuları eklemek oldukça zor olabilir ve bazılarının veritabanı tablolarınızı yeniden hizalamayı gerektirebilecek önemli sınırlamalarla geldiğini fark edeceksiniz.
Örneğin, çoğu çoklu-master tasarımlar yerine master / (multi-) köle. Başka bir deyişle, sadece orada oturan ve sorguları işleyemeyen bir sunucunuzun tamamı olabilir. Bazıları bunu yapar, ancak sınırlamalarla ... örneğin sadece çoklu-bağımlı tasarım okuyun. Bu nedenle, yazma işlemleri yapan bir sunucunuz olabilir ve diğerlerinin tümü salt okunur veri sağlar. Bu sistemleri kurduğunuzda her zaman basit bir işlem olmadığını ve iyi çalışmanın zor olduğunu fark edeceksiniz. Pek çok durumda ilave üzerine bir cıvata hissediyor.
Öte yandan, başlangıçtan beri eşzamanlılık ve çok master tasarımlı yeni veritabanı motorları geliştirilmektedir. NOSQL ve NewSQL yeni tasarım sınıflarıdır.
Bu yüzden geleneksel bir SQL sunucusundan daha iyi performans almanın en iyi yolu büyümüştür! NOSQL ve NewSQL ile hem ölçeklenir hem de ölçeklenir.
Geleneksel RDBMS sistemlerinin birbirine sıkı sıkıya bağlı olmasının nedeni, hepsinin aynı verilerin tutarlı bir görünümüne ihtiyaç duymasıdır. Farklı istemcilerden aynı verilerle ilgili güncellemeleri kabul eden birden fazla sunucunuz olduğunda hangisine güveniyorsunuz? Verilerin bir tür kilitleme mekanizmasıyla tutarlı olmasını sağlamaya çalışan herhangi bir yöntem, bir istemciden okunan herhangi bir verinin güncel olmaması nedeniyle performansı düşüren veya veri kalitesini etkileyen diğer sunuculardan işbirliği gerektirir. Ve sunucuların kendi aralarında aynı kayda yazarken hangi verilerin en güncel olduğuna karar vermeleri gerekir. Gördüğünüz gibi, iş yükünün sadece verilere erişimin hala oldukça hızlı olduğu süreçler veya iş parçacıkları arasında değil, sunucular arasında yayılması karmaşık bir sorundur.