Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Cluster yang dipecah di MongoDB


Cluster yang dipecah di MongoDB


Cluster Sharded MongoDB: Panduan Komprehensif

Sharding MongoDB adalah teknik ampuh untuk menskalakan dan mendistribusikan data secara horizontal di beberapa server atau "shard". Pendekatan ini memungkinkan MongoDB menangani peningkatan beban dan meningkatkan kinerja dengan membagi data menjadi bagian-bagian yang lebih kecil dan mendistribusikannya ke beberapa shard. Memahami komponen cluster sharded sangat penting untuk mengelola dan menskalakan infrastruktur database secara efisien.

Komponen Klaster Sharded

1. Pecahan: Pecahan dapat diskalakan secara horizontal, memungkinkan Anda menambahkan lebih banyak pecahan seiring pertumbuhan data untuk menangani peningkatan beban. Setiap pecahan dalam kluster pecahan dapat ditempatkan di mesin atau server fisik yang berbeda, sehingga mendistribusikan data dan beban kerja ke beberapa node. Pecahan dapat ditambahkan ke kluster pecahan secara dinamis, memungkinkan Anda menskalakan infrastruktur database tanpa waktu henti.

2. Pecahan Utama: Penetapan pecahan utama didasarkan pada ukuran database pada saat pembuatan, namun nanti dapat ditetapkan ulang secara manual jika diperlukan. Pecahan utama bertanggung jawab untuk menyimpan metadata yang terkait dengan database, seperti daftar koleksi dan lokasinya. Jika pecahan utama tidak tersedia, MongoDB secara otomatis memilih pecahan utama baru untuk database yang terpengaruh guna memastikan pengoperasian yang berkelanjutan.

3. Config Server: Server konfigurasi menyimpan metadata tentang cluster yang di-shard, termasuk informasi tentang shard, chunk, dan organisasi cluster. Mereka memfasilitasi operasi administratif dan membantu menjaga konsistensi cluster dengan memastikan bahwa semua node di cluster memiliki tampilan metadata yang sama. Server konfigurasi mengelola pengaturan autentikasi dan otorisasi, memastikan bahwa hanya pengguna dan aplikasi yang berwenang yang dapat mengakses cluster.

4. Instans Mongos: Instance Mongos bertindak sebagai antarmuka antara aplikasi klien dan cluster sharded. Mereka menangani perutean kueri, pengelolaan pecahan, dan agregasi hasil. Instance Mongos tidak menyimpan datanya sendiri tetapi bergantung pada cache metadata dari server konfigurasi untuk merutekan kueri secara efisien.

Cara Kerja Sharding

Saat cluster shard dibuat, MongoDB secara otomatis membagi data menjadi beberapa bagian dan mendistribusikannya ke seluruh shard yang tersedia. Setiap bongkahan memiliki batas bawah dan atas yang inklusif, yang menentukan rentang nilai kunci shard yang disimpan di setiap shard. Hal ini memastikan distribusi data yang merata dan perutean kueri yang efisien.

Optimasi Kueri dalam Cluster Sharded

Mengoptimalkan kueri sangat penting untuk pengambilan data yang efisien dan performa kueri dalam cluster yang dipecah. MongoDB menyediakan alat dan perintah untuk mengelola pecahan utama, seperti perintah `sh.status()` untuk melihat status pecahan dalam kluster pecahan. Selain itu, MongoDB mendukung kueri agregasi shard, memungkinkan Anda melakukan agregasi data yang kompleks di beberapa shard.

Memisahkan Potongan

Memisahkan potongan memungkinkan Anda menyempurnakan distribusi data dalam klaster pecahan MongoDB. Dengan memisahkan potongan secara eksplisit, Anda dapat mengontrol rentang nilai kunci shard yang disimpan di setiap shard dan memastikan distribusi data yang merata. Hal ini melibatkan identifikasi nilai di mana Anda ingin membagi potongan dan menggunakan perintah `sh.splitAt()` untuk membagi potongan pada titik pemisahan yang diinginkan.

Praktik Terbaik untuk Kluster Sharded

1. Menerapkan Server Konfigurasi sebagai Kumpulan Replika 3 Anggota: Pastikan server konfigurasi diterapkan sebagai kumpulan replika 3 anggota untuk ketersediaan tinggi dan toleransi kesalahan.

2. Menerapkan Setiap Shard sebagai Kumpulan Replika 3 Anggota: Pastikan setiap shard disebarkan sebagai kumpulan replika 3 anggota untuk ketersediaan tinggi dan toleransi kesalahan.

3. Terapkan Satu atau Lebih Router Mongos: Terapkan satu atau lebih router mongos untuk menangani perutean kueri dan manajemen shard.

4. Pantau Performa: Pantau performa cluster shard Anda, termasuk performa server konfigurasi dan shard, untuk memastikan performa dan distribusi data yang optimal.

5. Gunakan Kueri Agregasi Sharded: Gunakan kueri agregasi shard untuk melakukan agregasi data kompleks di beberapa shard, sehingga memastikan pemrosesan dan analisis data efisien.

Kesimpulan

Sharding MongoDB adalah teknik ampuh untuk menskalakan dan mendistribusikan data secara horizontal di beberapa server atau "shard". Memahami komponen cluster sharding dan cara kerja sharding sangat penting untuk mengelola dan menskalakan infrastruktur database secara efisien. Dengan mengikuti praktik terbaik dan mengoptimalkan kueri, Anda dapat memastikan performa dan distribusi data yang optimal di cluster shard Anda.

Kutipan:
[1] https://www.mongodb.com/docs/manual/core/sharded-cluster-components/
[2] https://www.mongodb.com/docs/v6.2/core/sharded-cluster-components/
[3] https://www.geeksforgeeks.org/sharded-cluster-components-in-mongodb/
[4] https://www.squash.io/tutorial-on-database-sharding-in-mongodb/
[5] https://www.bmc.com/blogs/mongodb-sharding-explained/