MongoDB - Sharding
Sharding adalah proses menyimpan catatan data di beberapa mesin dan merupakan pendekatan MongoDB untuk memenuhi permintaan pertumbuhan data. Saat ukuran data meningkat, satu mesin mungkin tidak cukup untuk menyimpan data atau menyediakan throughput baca dan tulis yang dapat diterima. Sharding menyelesaikan masalah dengan penskalaan horizontal. Dengan sharding, Anda menambahkan lebih banyak mesin untuk mendukung pertumbuhan data dan tuntutan operasi baca dan tulis.
Mengapa Sharding?
Dalam replikasi, semua penulisan masuk ke node master
Kueri sensitif latensi masih masuk ke master
Set replika tunggal memiliki batasan 12 node
Memori tidak bisa cukup besar jika set data aktif berukuran besar
Disk lokal tidak cukup besar
Penskalaan vertikal terlalu mahal
Sharding di MongoDB
Diagram berikut menunjukkan Sharding di MongoDB menggunakan cluster yang dipecah.
Dalam diagram berikut, ada tiga komponen utama -
Shards- Pecahan digunakan untuk menyimpan data. Mereka menyediakan ketersediaan tinggi dan konsistensi data. Dalam lingkungan produksi, setiap pecahan adalah kumpulan replika terpisah.
Config Servers- Server config menyimpan metadata cluster. Data ini berisi pemetaan kumpulan data cluster ke pecahan. Router kueri menggunakan metadata ini untuk menargetkan operasi ke pecahan tertentu. Dalam lingkungan produksi, cluster yang dipecah memiliki tepat 3 server konfigurasi.
Query Routers- Query router pada dasarnya adalah contoh mongo, antarmuka dengan aplikasi klien dan operasi langsung ke shard yang sesuai. Router kueri memproses dan menargetkan operasi ke pecahan dan kemudian mengembalikan hasilnya ke klien. Cluster dengan shard dapat berisi lebih dari satu router kueri untuk membagi beban permintaan klien. Seorang klien mengirimkan permintaan ke satu router kueri. Umumnya, cluster yang dipecah memiliki banyak router kueri.