Dari IBM developerWorks: Menyediakan skalabilitas data tingkat cloud dengan basis data NoSQL
Skalabilitas adalah sistem yang harus dapat mendukung database yang sangat besar dengan tingkat permintaan yang sangat tinggi pada latensi yang sangat rendah.
Sistem NoSQL memiliki sejumlah fitur desain yang sama:
- Kemampuan untuk secara horizontal memperkecil throughput pada banyak server.
- Antarmuka atau protokol tingkat panggilan sederhana (berbeda dengan pengikatan SQL).
- Dukungan untuk model konsistensi yang lebih lemah daripada transaksi ACID di sebagian besar RDBMS tradisional.
- Penggunaan indeks dan RAM yang didistribusikan secara efisien untuk penyimpanan data.
- Kemampuan untuk secara dinamis mendefinisikan atribut atau skema data baru.
Mengapa basis data relasional mungkin tidak optimal untuk Penskalaan
Secara umum, sistem manajemen basis data relasional telah dianggap sebagai "solusi satu ukuran untuk semua untuk persistensi dan pengambilan data" selama beberapa dekade. Mereka telah matang setelah upaya penelitian dan pengembangan yang luas dan sangat berhasil menciptakan pasar dan solusi besar dalam domain bisnis yang berbeda.
Kebutuhan yang semakin meningkat untuk skalabilitas dan persyaratan aplikasi baru telah menciptakan tantangan baru untuk RDBMS tradisional, termasuk beberapa ketidakpuasan dengan pendekatan satu ukuran untuk semua dalam beberapa aplikasi skala web. Jawaban untuk ini adalah generasi baru dari perangkat lunak database berkinerja tinggi dan berkinerja tinggi yang dirancang untuk menantang dominasi sistem manajemen basis data relasional. Alasan utama untuk pergerakan NoSQL adalah bahwa implementasi yang berbeda dari aplikasi web, perusahaan, dan cloud computing memiliki persyaratan yang berbeda dari basis datanya - tidak setiap aplikasi memerlukan konsistensi data yang kaku, misalnya.
Contoh lain: Untuk situs web bervolume tinggi seperti eBay, Amazon, Twitter, atau Facebook, skalabilitas dan ketersediaan tinggi adalah persyaratan penting yang tidak dapat dikompromikan. Untuk aplikasi ini, bahkan pemadaman sekecil apa pun dapat memiliki konsekuensi keuangan yang signifikan dan berdampak pada kepercayaan pelanggan.
Lebih dari pada DBA.SE: Apa arti penskalaan horizontal?
Penskalaan Horizontal pada dasarnya adalah membangun bukan ke atas. 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.