Setiap sistem database memiliki komponen terstruktur yang bertanggung jawab untuk menjaga bagaimana data disimpan dan disajikan baik dalam memori maupun disk. Ini sering disebut sebagai mesin penyimpanan. Lebih sering ketika mengevaluasi arsitektur basis data operasional, pengembang memperhitungkan faktor-faktor langsung seperti pemodelan data, pengurangan latensi, peningkatan operasi throughput, konsistensi data, kemudahan skalabilitas, dan toleransi kesalahan minimal. Meskipun demikian, seseorang perlu memiliki pengetahuan yang mendetail dan canggih tentang mesin penyimpanan yang mendasarinya untuk penyetelan yang lebih baik sehingga memberikan faktor-faktor yang disorot secara efisien.
Siklus sederhana dari aplikasi ke sistem db diilustrasikan di bawah ini...
Contoh arsitektur aplikasi umumMesin Penyimpanan WiredTiger
MongoDB mendukung terutama 3 mesin penyimpanan yang kinerjanya berbeda sesuai dengan beberapa beban kerja tertentu. Mesin penyimpanannya adalah:
- Mesin Penyimpanan WiredTiger
- Mesin Penyimpanan Dalam Memori
- Mesin Penyimpanan MMAPv1
Mesin penyimpanan WiredTiger memiliki konfigurasi Mesin Berbasis B-Tree dan Mesin Berbasis Pohon Penggabungan Terstruktur Log.
Mesin Berbasis B-Tree
Ini adalah salah satu mesin penyimpanan kuno dari mana pengaturan canggih lainnya berasal. Ini adalah struktur data pohon self-balancing yang memastikan penyortiran data dan memungkinkan pencarian, akses berurutan, penyisipan, dan penghapusan secara logaritmik. Ini adalah penyimpanan berbasis baris sehingga setiap baris dianggap sebagai satu record dalam database
Kelebihan Mesin Penyimpanan B-Tree
- Troughput tinggi dan pembacaan latensi rendah. B-Trees memiliki kecenderungan tumbuh lebar dan dangkal sehingga sangat sedikit node yang dilalui.
- Menjaga kunci dalam urutan yang diurutkan untuk traversing sekuensial dan indeks seimbang dengan algoritme rekursif.
- Node penyimpanan interior selalu dijaga setidaknya setengah penuh yang secara umum mengurangi pemborosan.
- Mudah untuk menangani sejumlah besar penyisipan dan penghapusan dalam waktu singkat.
- Pengindeksan hierarki digunakan dengan tujuan mengurangi pembacaan disk.
- Mempercepat penyisipan dan penghapusan melalui penggunaan sebagian blok penuh.
Keterbatasan mesin penyimpanan B-Tree
- Kinerja penulisan yang buruk karena kebutuhan untuk memastikan struktur data yang tertata dengan baik dengan penulisan acak. Penulisan acak lebih mahal daripada penulisan berurutan ke penyimpanan.
- Hukuman siap-modifikasi-tulis seluruh blok bahkan untuk pembaruan kecil pada satu baris dalam satu blok.
Mesin Berbasis Pohon Penggabungan Terstruktur Log
Karena kinerja penulisan B-Tree Based Engine yang buruk, pengembang harus menemukan cara untuk mengatasi kumpulan data yang lebih besar ke DBMS. Oleh karena itu, Log Structured Merge Tree Based Engine (LSM Tree) dibuat untuk meningkatkan kinerja akses yang diindeks ke file dengan volume tulis tinggi selama periode yang diperpanjang. Dalam hal ini, penulisan acak pada tahap pertama memori kaskade diubah menjadi penulisan berurutan pada komponen pertama berbasis disk.
Kelebihan Mesin Penyimpanan Pohon LSM
- Kemampuan untuk melakukan penulisan berurutan dengan cepat meningkatkan penanganan cepat terhadap data besar yang tumbuh dengan cepat.
- Sangat cocok untuk penyimpanan berjenjang sehingga memberikan organisasi pilihan yang lebih baik dalam hal biaya dan kinerja. SSD berbasis Flash memberikan performa luar biasa dalam hal ini.
- Kompresi dan efisiensi penyimpanan yang lebih baik sehingga menghemat ruang penyimpanan dan meningkatkan penyimpanan hampir penuh
- Data selalu tersedia untuk kueri dengan segera.
- Penyisipan sangat cepat.
Keterbatasan mesin penyimpanan B-Tree
Mengkonsumsi lebih banyak memori dibandingkan dengan B-Tree selama operasi baca karena pembacaan dan penguatan ruang. Namun, beberapa pendekatan seperti filter bloom telah mengurangi efek ini dalam praktiknya sehingga jumlah file yang akan diperiksa selama kueri titik berkurang.
Teknologi WiredTiger dirancang sedemikian rupa untuk menggunakan keunggulan B-Tree dan LSM menjadikannya canggih dan mesin penyimpanan terbaik untuk MongoDB. IT sebenarnya adalah mesin penyimpanan default MongoDB.
Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara GratisArsitektur Mesin Penyimpanan WiredTiger
Seperti disebutkan di atas, ini melibatkan konsep dua mesin penyimpanan dasar yaitu mesin B-Tree dan LSM Tree karenanya merupakan mesin penyimpanan multiversion concurrency control (MVCC). Manfaat dari dua gabungan memungkinkan sistem melihat snapshot dari database pada saat mengakses koleksi. Pos pemeriksaan dibuat sedemikian rupa sehingga tampilan data yang konsisten direkam ke disk di antara pos pemeriksaan. Jika terjadi crash antar pos pemeriksaan, mudah untuk memulihkannya dengan pos pemeriksaan ini atau lebih tepatnya, bahkan jika tidak ada pos pemeriksaan untuk data, seseorang dapat memulihkannya dari file jurnal disk.
Penggunaan cache yang ekstensif daripada disk untuk meningkatkan latensi rendah. Mesin penyimpanan WiredTiger sangat bergantung pada cache halaman OS sehingga data terkompresi diambil tanpa melibatkan disk. Selain itu, data yang paling terakhir digunakan akan dihapus dari RAM sehingga menghemat lebih banyak ruang untuk cache.
Konsep penyimpanan B-Tree menawarkan pembacaan yang sangat efisien dan kinerja tulis yang baik dengan penggunaan CPU yang rendah. Ini juga memiliki implementasi penguncian tingkat dokumen yang memungkinkan beban kerja yang sangat bersamaan dan konkurensi ini akibatnya memfasilitasi server untuk mengambil keuntungan dari banyak CPU inti. Secara umum, semua tesis meningkatkan skalabilitas database yang tinggi.
Edisi perusahaan mendukung enkripsi pada disk untuk mesin penyimpanan WiredTiger yang merupakan fitur yang sangat meningkatkan keamanan data.
Mesin penyimpanan WiredTiger memungkinkan penulisan log yang memastikan pemulihan kerusakan otomatis dan membuat penulisan tahan lama.
Keuntungan Mesin Penyimpanan WiredTiger
- Penyimpanan yang efisien berkat berbagai teknologi kompresi seperti kompresi Snapp, gzip, dan awalan.
- Ini sangat skalabel dengan membaca dan menulis secara bersamaan. Hal ini pada akhirnya meningkatkan throughput dan kinerja database secara umum.
- Pastikan ketahanan data dengan log tulis dan penggunaan pos pemeriksaan.
- Penggunaan memori yang optimal. WiredTiger menggunakan cache internal dan cache sistem file.
- Dengan cache sistem file, MongoDB dapat dengan mudah menggunakan memori kosong yang tidak digunakan oleh cache WiredTiger.
Kemunduran Mesin Penyimpanan WiredTiger
Kesulitan dalam memperbarui data. Skema konkurensi mencegah pembaruan di tempat sehingga memperbarui nilai bidang dalam dokumen menulis ulang seluruh dokumen.
Kesimpulan
Mesin penyimpanan WiredTiger mengintegrasikan konsep dari dua mesin penyimpanan utama, mesin penyimpanan pohon B-Tree dan LSM untuk mencapai kinerja maksimum dan optimal. Mempertimbangkan keuntungan dari kedua kasing dan menggunakannya secara kolektif menjadikan WiredTiger mesin penyimpanan serba guna. Untuk alasan ini, dalam versi MongoDB saat ini, ini adalah mesin penyimpanan default. Ini berarti jika Anda benar-benar tidak memiliki alasan kuat untuk membencinya, maka itu adalah yang terbaik untuk data Anda. Namun, pilihan mesin penyimpanan sangat bergantung pada kasus penggunaan data Anda atau lebih tepatnya di mana WiredTiger tidak dapat memenuhi harapan Anda. Secara umum, ini adalah mesin penyimpanan default terbaik.