MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pengantar Dasar-Dasar Zona MongoDB

Zona MongoDB

Untuk memahami Zona MongoDB, pertama-tama kita harus memahami apa itu Zona:sekelompok pecahan berdasarkan kumpulan tag tertentu.

Zona MongoDB membantu dalam distribusi potongan berdasarkan tag, di seluruh pecahan. Semua pekerjaan (membaca dan menulis) yang terkait dengan dokumen dalam suatu zona dilakukan pada pecahan yang cocok dengan zona tersebut.

Mungkin ada skenario berbeda di mana sharded cluster (berbasis zona) terbukti sangat berguna. Katakanlah:

  • Aplikasi yang terdistribusi secara geografis mungkin memerlukan frontend, serta penyimpanan data
  • Aplikasi memiliki arsitektur n-tier sehingga beberapa record diambil dari hardware tingkat yang lebih tinggi (latensi rendah), sedangkan yang lain dapat diambil dari hardware tingkat rendah (mendorong latensi tinggi)

Manfaat Menggunakan Zona MongoDB

Dengan bantuan MongoDB Zones, DBA dapat membuat solusi penyimpanan berjenjang yang mendukung siklus hidup data, dengan data yang sering digunakan disimpan dalam memori, data yang jarang digunakan disimpan di server, dan pada waktu yang tepat, data yang diarsipkan diambil secara offline.

Cara Mengatur Zona

Dalam kluster shard, Anda dapat membuat zona yang mewakili sekelompok shard dan mengaitkan satu atau beberapa rentang nilai kunci shard ke zona tersebut. MongoDB merutekan semua pembacaan dan penulisan yang masuk ke dalam rentang zona hanya ke pecahan di dalam zona tersebut. Anda dapat mengaitkan setiap zona dengan satu atau beberapa pecahan dalam kluster dan pecahan dapat dikaitkan dengan sejumlah zona.

Beberapa pola penerapan paling umum di mana zona dapat diterapkan adalah sebagai berikut:

  • Mengisolasi subset data tertentu pada set shard tertentu.
  • Dengan memastikan bahwa data yang paling relevan berada di shard yang secara geografis paling dekat dengan server aplikasi.
  • Rutekan data ke shard berdasarkan kinerja perangkat keras shard.

Gambar berikut mengilustrasikan sharded cluster dengan tiga shard dan dua zona. Zona A mewakili rentang dengan batas bawah 0 dan batas atas 10. Zona B menunjukkan rentang dengan batas bawah 10 dan batas atas 20. Pecahan MERAH dan BIRU memiliki zona A. Shard BLUE juga memiliki zona B. Shard GREEN tidak memiliki zona yang terkait dengannya. Cluster dalam kondisi stabil dan tidak ada potongan yang melanggar zona mana pun

Rentang Zona MongoDB

Setiap zona mencakup satu atau beberapa rentang nilai kunci shard. Setiap rentang yang dicakup zona selalu termasuk batas bawahnya dan tidak termasuk batas atasnya.

INGAT: Zona tidak dapat berbagi rentang dan tidak boleh memiliki rentang yang tumpang tindih.

Menambahkan Pecahan ke Zona

metode sh.addShardTag() digunakan untuk menambahkan zona ke shard. Sebuah shard mungkin memiliki beberapa zona, dan beberapa shard mungkin juga memiliki zona yang sama. Contoh berikut menambahkan zona A ke satu pecahan.

sh.addShardTag("shard0000", "A")

Menghapus Pecahan ke Zona

Untuk menghapus zona dari pecahan, metode sh.removeShardTag() digunakan. Contoh berikut menghapus zona A dari pecahan.

sh.removeShardTag("shard0002", "A")
Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara Gratis

Kiat untuk Zona MongoDB

Buat dokumen tetap sederhana

MongoDB adalah database bebas skema. Ini berarti tidak ada skema standar secara default. Kami dapat menambahkan skema yang telah ditentukan sebelumnya di versi yang lebih baru, tetapi itu tidak wajib. Jangan meremehkan kesulitan yang terjadi saat bekerja dengan dokumen dan array, karena dapat menjadi sangat sulit untuk mengurai data Anda di sisi aplikasi/proses ETL. Selain itu, larik dapat merusak kinerja replikasi:untuk setiap perubahan larik, semua nilai larik direplikasi.

Perangkat Keras Terbaik Tidak Selalu Pilihan Terbaik

Menggunakan perangkat keras yang baik pasti membantu untuk kinerja yang baik. Tapi apa yang bisa terjadi di lingkungan ketika salah satu mesin besar mati? Jawabannya adalah 'failover'.

Memiliki beberapa mesin kecil (bukan satu atau dua) di lingkungan terdistribusi dapat memastikan bahwa pemadaman hanya akan memengaruhi beberapa bagian pecahan dengan sedikit atau tanpa persepsi oleh aplikasi. Tetapi pada saat yang sama, lebih banyak mesin menyiratkan kemungkinan besar untuk mengalami kegagalan. Pertimbangkan tradeoff ini saat merancang lingkungan Anda. Pilihan yang tepat memengaruhi performa.

Set Kerja

Berapa besar set kerja? Biasanya, aplikasi tidak menggunakan semua data. Beberapa data sering diperbarui, sementara data lainnya tidak. Apakah dataset kerja Anda muat di RAM? Performa optimal terjadi ketika semua set data yang berfungsi ada di RAM.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $lookup Objectid mendapatkan array kosong?

  2. Pembaruan Massal Dokumen di MongoDB

  3. Cara terbaik untuk terhubung ke MongoDB menggunakan Node.js

  4. Penyortiran kompleks mongo?

  5. Bagaimana saya bisa menggunakan variabel regex dalam kueri untuk MongoDB