Dalam konteks basis data, saya menemukan skalabilitas horizontal sebagai salah satu keunggulan dari basis data NOSQL. Apa arti istilah ini?
Bagaimana perbandingannya dengan penskalaan vertikal ?
Dalam konteks basis data, saya menemukan skalabilitas horizontal sebagai salah satu keunggulan dari basis data NOSQL. Apa arti istilah ini?
Bagaimana perbandingannya dengan penskalaan vertikal ?
Jawaban:
Horizontal Scaling
Horizontal Scaling pada dasarnya membangun bukan naik. Anda tidak pergi dan membeli server yang lebih besar dan memindahkan semua beban Anda ke server itu, sebaliknya Anda membeli 1+ server tambahan dan mendistribusikan beban Anda ke mereka.
Penskalaan horizontal digunakan ketika Anda memiliki kemampuan untuk menjalankan beberapa instance pada server secara bersamaan. Biasanya jauh lebih sulit untuk beralih dari 1 server ke 2 server maka dari 2 menjadi 5, 10, 50, dll.
Setelah Anda mengatasi masalah menjalankan mesin virtual paralel, Anda dapat mengambil keuntungan besar dari lingkungan seperti Amazon EC2, Layanan Cloud Rackspace, GoGrid, dll karena Anda dapat membuat mesin virtual naik dan turun berdasarkan permintaan, mengurangi kebutuhan untuk membayar daya server Anda tidak menggunakan hanya untuk menutupi beban puncak itu.
Database relasional adalah salah satu item yang lebih sulit untuk menjalankan baca / tulis penuh secara paralel.
Saya melihat Damien Katz berbicara tentang CouchDB di StackOverflow DevDays di Austin dan salah satu fokus utamanya untuk pembuatannya adalah contoh paralel ini. Karena ini telah menjadi fokus sejak hari pertama, itu akan jauh lebih mampu mengambil keuntungan dari penskalaan horizontal.
Vertikal Scaling
Vertikal Scaling adalah yang sebaliknya, membangun bukan keluar. Pergi dan beli perangkat keras terkuat yang Anda mampu dan letakkan aplikasi Anda, database, dll di atasnya.
Dunia Nyata
Tentu saja, keduanya memiliki kelebihan dan kekurangan. Seringkali kombinasi keduanya digunakan untuk solusi akhir.
Anda mungkin memiliki basis data utama tempat semua orang menulis dan membaca data waktu nyata pada perangkat keras besar. Kemudian telah didistribusikan hanya baca salinan dari database untuk analisis dan pelaporan data yang lebih berat di mana sampai saat ini tidak masalah. Kemudian aplikasi web ujung depan mungkin berjalan di beberapa server web di belakang load balancer.
Penskalaan horizontal sangat bagus ketika Anda membutuhkan aplikasi yang perlu menangani jumlah penulisan dan pembacaan paralel yang tinggi. Pikirkan sebuah situs web yang mendapatkan lalu lintas dalam jumlah besar dan perlu mencatat ini, atau perlu mencatat banyak peristiwa.
Saya kira poin plus terbesar adalah penskalaan horizontal dapat dilakukan dengan menggunakan perangkat keras komoditas, dan hanya ada begitu banyak yang dapat Anda lakukan dengan penskalaan vertikal dan mencoba membuat kotak Anda yang ada lebih besar.
RDBMS tradisional gagal di sini karena berbagai alasan (termasuk fakta bahwa mereka ACID), dan solusi NoSQL unggul di sini karena mereka dapat dengan mudah diskalakan secara horizontal - tapi itu cerita lain (RDBMS / SQL vs NoSQL.)
Beberapa orang di industri menggunakan terminologi berbeda untuk mengartikan hal yang sama: