Topik ini menjelaskan fitur baru dan optimalisasi dalam MongoDB 7.0.
Pratinjau cepat
ApsaraDB for MongoDB
Fitur Baru
Optimalisasi
Untuk informasi lebih lanjut tentang fitur lainnya dan optimalisasi MongoDB 7.0, lihat Catatan Rilis untuk MongoDB 7.0.
Enkripsi yang dapat di-query
Pada MongoDB 6.0, fitur enkripsi yang dapat di-query berada dalam versi pratinjau. Pada MongoDB 7.0, fitur ini tersedia secara umum. Untuk informasi lebih lanjut, lihat Queryable Encryption.
Pemeriksaan konsistensi metadata shard
Perintah checkMetadataConsistency ditambahkan pada MongoDB 7.0 untuk memeriksa inkonsistensi metadata di seluruh shard yang berbeda. Contoh:
Contoh 1:
// Perintah
db.runCommand( {
checkMetadataConsistency: 1,
checkIndexes: true
} )Contoh 2:
//mongosh
db.checkMetadataConsistency()
db.collection.checkMetadataConsistency()
sh.checkMetadataConsistency() Anda dapat menyertakan item pemeriksaan ini dalam O&M harian untuk mengidentifikasi potensi inkonsistensi sejak dini. Untuk informasi lebih lanjut, lihat checkMetadataConsistency.
Query sampel dan analisis kunci shard (analyzeShardKey)
Anda dapat menganalisis apakah kunci shard dari koleksi sudah tepat berdasarkan hasil query sampel. Hal ini membantu merancang skema dan kunci shard untuk koleksi dengan efisien serta membuat keputusan yang lebih tepat terkait penggunaan arsitektur sharding. Sintaks perintah analyzeShardKey:
db.adminCommand(
{
analyzeShardKey: <string>,
key: <shardKey>,
keyCharacteristics: <bool>,
readWriteDistribution: <bool>,
sampleRate: <double>,
sampleSize: <int>
}
)Perintah ini tidak memblokir operasi baca dan tulis pada koleksi. Namun, untuk meminimalkan dampak pada bisnis Anda, kami sarankan menggunakan perintah ini bersamaan dengan preferensi baca secondary atau secondaryPreferred. Pada kluster sharded, mongos secara otomatis menetapkan preferensi baca menjadi secondaryPreferred.
Untuk informasi lebih lanjut, lihat analyShardKey dan configureQueryAnalyzer.
AutoMerger
MongoDB 7.0 memperkenalkan fitur baru bernama AutoMerger untuk balancer. Ketika data atau indeks didistribusikan secara tidak merata, shard berlebihan ada, atau data dimigrasikan, AutoMerger menggabungkan chunk untuk menyeimbangkan distribusi data dan meningkatkan kinerja database. Secara default, AutoMerger diaktifkan di MongoDB 7.0. Anda juga dapat mengonfigurasi jendela aktif untuk balancer untuk mengaktifkan AutoMerger.
Perintah configureCollectionBalancing yang diperkenalkan di versi MongoDB sebelumnya untuk mengonfigurasi pengaturan balancer untuk koleksi sharded juga mendukung AutoMerger.
db.adminCommand(
{
configureCollectionBalancing: "<db>.<collection>",
chunkSize: <num>,
defragmentCollection: <bool>,
enableAutoMerger: <bool>
}
)Anda juga dapat menjalankan perintah mergeAllChunksOnShard untuk menggabungkan semua chunk atau rentang yang dapat digabungkan dalam sebuah shard.
db.adminCommand( { mergeAllChunksOnShard: "db.coll", shard: "Shard0" } )Sharding
Selain AutoMerger, MongoDB 7.0 memperkenalkan optimalisasi berikut:
Parameter
rangeDeleterHighPrioritydapat digunakan untuk menentukan apakah penghapusan dokumen yatim memiliki prioritas tinggi. Secara default, parameter ini disetel ke false, yang menunjukkan bahwa MongoDB memprioritaskan operasi penghapusan terkait bisnis dibandingkan penghapusan dokumen yatim.MongoDB 7.0 menghapus dokumen
operationsBlockedByRefreshyang berisi statistik tentang operasi yang diblokir oleh pembaruan cache katalog. Ini karena penghitung operationsBlockedByRefresh bertambah pada node mongos untuk setiap operasi yang menggunakan informasi routing koleksi, meskipun operasi tersebut tidak diblokir oleh aktivitas pembaruan katalog.Metrik pemantauan terkait resharding ditambahkan.
Opsi
maxSizetidak lagi didukung untuk perintah addShard.Ketika ukuran chunk dari koleksi
config.settingsdisesuaikan, validasi dilakukan untuk memastikan nilai baru berada dalam rentang yang wajar antara 1 hingga 1.024.Mulai dari MongoDB 6.0.3, beberapa penyesuaian dilakukan pada kebijakan balancer.
Balancer mendistribusikan data secara merata berdasarkan perbedaan volume data daripada jumlah chunk antar shard.
Pembagian dilakukan berdasarkan rentang alih-alih berdasarkan chunk.
Pemisahan otomatis hanya berlaku ketika data dimigrasikan di seluruh shard.
Keamanan
Protokol Interoperabilitas Manajemen Kunci (KMIP) V1.0 dan V1.1 didukung.
OpenSSL 3.0 dan OpenSSL FIPS didukung.
Agregasi
Operator berikut ditambahkan untuk melakukan perhitungan bit dan mendukung persentil.
Operator | Deskripsi |
| Mengembalikan hasil operasi AND bitwise pada nilai numerik tipe INT atau LONG. |
| Mengembalikan hasil operasi inversi bitwise pada nilai numerik tipe INT atau LONG. |
| Mengembalikan hasil operasi OR bitwise pada nilai numerik tipe INT atau LONG. |
| Mengembalikan hasil operasi XOR bitwise pada nilai numerik tipe INT atau LONG. |
| Mengembalikan median perkiraan, yang setara dengan persentil ke-50. |
| Mengembalikan persentil yang ditentukan. |
Koleksi time series
Pembatasan yang diberlakukan di versi sebelumnya pada penggunaan perintah DELETE untuk koleksi time-series dihapus. Satu-satunya pembatasan pada perintah DELETE saat ini adalah bahwa perintah tersebut tidak dapat digunakan dalam transaksi multi-dokumen.
Koleksi time-series didukung untuk perintah COMPACT.
Lainnya
Bidang seperti
catalogCacheIndexLookupDurationMillisditambahkan ke log query lambat. Untuk informasi lebih lanjut, lihat Logging Slow Operations.Konkurensi transaksi mesin penyimpanan dapat disesuaikan secara dinamis. Konkurensi default sebelum penyesuaian adalah 128. Mulai dari MongoDB 7.0, konkurensi transaksi disesuaikan secara otomatis. Untuk informasi lebih lanjut, lihat Concurrent Storage Engine Transactions (Read and Write Tickets).
Bidang terkait sampling query ditambahkan ke perintah currentOp. Untuk informasi lebih lanjut, lihat currentOp Metrics.
Indeks wildcard komposit didukung. Untuk informasi lebih lanjut, lihat Compound Wildcard Indexes.
Operator
$changeStreamSplitLargeEventditambahkan untuk memungkinkan Anda membagi peristiwa besar yang melebihi ukuran 16 MB. Untuk informasi lebih lanjut, lihat Large Change Stream Events.Kinerja mesin eksekusi query berbasis slot dioptimalkan.
Metrik terkait migrasi chunk ditambahkan. Untuk informasi lebih lanjut, lihat New Sharding Statistics for Chunk Migrations.
Variabel sistem
USER_ROLESdapat digunakan untuk mendapatkan peran pengguna saat ini.Parameter global terkait
analyzeShardKey,balancer, danqueryAnalyzersditambahkan.Lebih banyak bidang ditambahkan ke hasil yang dikembalikan untuk serverStatus. Untuk informasi lebih lanjut, lihat serverStatus Output Change.