Pembagian Basis Data 101

Blog ini adalah bagian dari seri di mana kami membahas 101 konsep dari Ground Zero untuk audiens yang memiliki pengetahuan awal yang terbatas. Artikel ini hadir dalam Seri Tingkat Menengah karena melibatkan pemahaman tentang Database Sharding yang terutama digunakan untuk mendistribusikan data dalam satu node di beberapa node yang dipartisi untuk skalabilitas dan kinerja aplikasi bisnis yang lebih baik.

Beberapa blog sebelumnya di Seri 101 adalah sebagai berikut:

Strategi Caching 101
CORS 101 Circuit Breaker 101 Antrian Prioritas 101 Komunikasi Asinkron 101 Desain Basis Data 101



Apa itu Sharding?

Sharding adalah pola desain di mana database besar dibagi menjadi beberapa node, dengan setiap node melayani data untuk subset pelanggan/entitas yang dipartisi secara logis oleh key/id . Beberapa alasan untuk mempartisi basis data adalah batas penyimpanan vertikal pada server tunggal, kinerja yang lambat karena kebutuhan konkurensi yang tinggi, memiliki node yang terletak secara geografis untuk latensi ujung ke ujung yang lebih baik untuk melayani pelanggan .

Dengan mendistribusikan data ke dalam beberapa pecahan, aplikasi terdistribusi skala besar dapat membangun ketahanan jangka panjang terhadap kebutuhan data yang berkembang saat ini dan di masa depan yang dibatasi oleh basis data Cloud Hosted SKU premium.

Teknik Pecahan

Teknik logis yang berbeda digunakan untuk memutuskan menemukan pecahan yang benar untuk permintaan pelanggan akhir-2-akhir. Kunci yang membantu membuat keputusan ini disebut sebagai kunci Shard dan harus menjadi bidang statis di seluruh perjalanan dalam produksi. Kunci pecahan bisa tunggal atau komposit berdasarkan kebutuhan.

Banyak faktor seperti frekuensi pencarian basis data, biaya pecahan yang ditambahkan pada tahap terakhir, dll. dipertimbangkan sebelum menghasilkan strategi yang tepat untuk strategi pecahan keseluruhan. Terlepas dari tekniknya, dua prinsip utama yang diperingatkan — menghindari migrasi data antar pecahan dan mendistribusikan data penyewa tunggal ke banyak pecahan. Beberapa teknik umum adalah sebagai berikut

Strategi Jangkauan

Dalam strategi Rentang, entitas yang termasuk dalam rentang tertentu (1-N) dilayani oleh pecahan tertentu. Ini digunakan untuk mengelompokkan entitas terkait bersama-sama. Transaksi Ex Pelanggan berdasarkan rentang tanggal dilayani menggunakan pecahan yang sama, sehingga pengambilan laporan agregat bulanan disederhanakan dengan menanyakan node tunggal.

Strategi Jangkauan pada Kardinalitas Pelanggan

Lebih mudah diterapkan dan kueri rentang cocok untuk operasi batch untuk kasus penggunaan bisnis. Namun, strategi ini tidak menjamin distribusi lalu lintas yang optimal di seluruh pecahan dan beberapa node dapat melayani pengganda besar lalu lintas pelanggan.

Strategi Pencarian

Pencarian atau juga disebut sebagai pendekatan berbasis Direktori menggunakan tabel pencarian untuk mengidentifikasi pecahan yang benar untuk entitas database tertentu. Kasus penggunaan yang baik untuk strategi ini adalah memiliki basis data berbasis Penyewa yang dilayani oleh platform umum. Tabel pencarian diubah saat penyewa ditambahkan/dihapus dari platform.

Pendekatan yang mudah diterapkan, namun pendekatan ini memiliki overhead tambahan dari langkah pencarian shard yang dapat memengaruhi latensi ujung-2 ujung. Dalam hal penyewa bersama di shard yang sama, disarankan untuk menyimpan pemetaan shard virtual tambahan untuk meminimalkan dampak shard rebalancing .

Strategi Hash

Strategi ini menggunakan fungsi berbasis hash, yang mengambil atribut pelanggan seperti nama, IP klien, lokasi geografis, dll . untuk mengevaluasi pecahan optimal untuk hal yang sama. Tujuan utamanya adalah untuk mendistribusikan secara merata TPS keseluruhan ke dalam pecahan N untuk mencapai pemanfaatan sumber daya yang efisien.

Sama seperti pendekatan pencarian, ia memiliki batasan pada overhead jaringan tambahan untuk perhitungan hash serta penyeimbangan kembali masalah hash. Namun, menggunakan skema Hashing yang Konsisten dapat membantu mengatasi batasan yang terakhir.

Ringkasan

Sharding menyajikan pendekatan desain database sistem pengoptimalan untuk menskalakan pola desain terdistribusi di luar batas vertikal penawaran Cloud. Dipukul secara efektif dengan distribusi pecahan geografis berbasis kedekatan, meminimalkan radius ledakan pemadaman dan latensi yang lebih baik. Sebagian besar penawaran Cloud seperti AWS, Azure, dll . telah menggunakan sharding sebagai prinsip inti untuk membangun solusi database asli multi-wilayah mereka seperti AWS Aurora , Azure Cosmos , dll . yang memecahkan biaya operasional pengelolaan beberapa node oleh tim teknik.

Kami akan membahas pembahasan mendalam salah satu arsitektur Cloud Native Database di Blog Lanjutan seri mendatang.

Untuk umpan balik, silakan kirim pesan ke amit[dot]894[at]gmail[dot]com atau hubungi salah satu tautan di https://about.me/amit_raj .

Suggested posts

Kebohongan Koboi

Bagaimana perusahaan besar menjual kebohongan besar kepada orang Amerika

Kebohongan Koboi

Ini adalah pagi keemasan yang cemerlang di perbukitan barat, saat sinar pertama matahari menyinari rerumputan beku di dataran. Kawanan sapi Angus yang tenang, hitam legam dan besar, membentuk siluet melawan matahari terbit saat mereka menyusuri jalan setapak menuju lokasi yang mereka semua kenal dengan baik; bar sarapan.

Apa yang membuat podcast berpengaruh?

Apa yang membuat podcast berpengaruh?

Minggu lalu saya melihat siaran pers, dikirim melalui PressGazette (situs web berita media Inggris). Artikel tersebut mengumumkan bahwa Acast, perusahaan hosting dan periklanan podcast Scandi, akan memimpin konsorsium penerbit "mungkin yang paling berpengaruh" dalam podcasting.

Related posts

"The Mariana Trench Unveiled: Menyingkap Kebenaran Tersembunyi yang Mengerikan dari Abyss"

"The Mariana Trench Unveiled: Menyingkap Kebenaran Tersembunyi yang Mengerikan dari Abyss"

Pendahuluan:Selamat datang, para pembaca yang pemberani, dalam sebuah perjalanan yang akan membawa kita ke kedalaman tergelap planet kita. Di blog ini, kami menyelidiki dunia penuh teka-teki Palung Mariana, mengungkap rahasianya yang tersembunyi dan mengungkap kebenaran mengerikan yang ada di bawah permukaannya.

Menciptakan Lingkungan Kerja yang Aman

Menciptakan Lingkungan Kerja yang Aman

“Dia akan melindungiku saat aku dalam bahaya. Dia akan menyembunyikan saya di tendanya.

Lacak Siapa Saja Hanya dengan Nomor Telepon | Investigasi OSINT

Lacak Siapa Saja Hanya dengan Nomor Telepon | Investigasi OSINT

Anda bisa menjadi Penyelidik OSINT, Pemain CTF, atau sekadar seseorang yang menerima panggilan spam. Seseorang yang mencoba memverifikasi nomor yang Anda lihat di iklan.

Mencari Informasi Tentang Nama Domain

Kutipan dari Alat Perangkat Lunak Kecil dan Tajam oleh Brian P. Hogan

Mencari Informasi Tentang Nama Domain

Saat Anda membuat permintaan ke facebook.com, komputer Anda mencari nama domain untuk menerjemahkan nama domain tersebut menjadi alamat IP sehingga komputer Anda dapat membuat koneksi tersebut.