Partisi di sekitar batas

Menggunakan pemartisian untuk bekerja dengan seputar database, jaringan, dan batas komputasi

Di cloud, semua layanan memiliki batasan dalam kemampuannya untuk meningkatkan skala. Batas layanan Azure didokumentasikan dalam batas, kuota, serta batasan langganan dan layanan Azure. Batas termasuk jumlah inti, ukuran database, throughput kueri, dan throughput jaringan. Jika sistem Anda berkembang dengan cukup besar, Anda mungkin mencapai satu atau beberapa batas ini. Gunakan pemartisian untuk bekerja dengan seputar batas ini.

Ada banyak cara untuk mempartisi sistem, seperti:

  • Partisi database untuk menghindari batas ukuran database, data I/O, atau jumlah sesi bersamaan.

  • Partisi antrean atau bus pesan untuk menghindari batas jumlah permintaan atau jumlah koneksi bersamaan.

  • Partisi aplikasi web App Service untuk menghindari batas jumlah instans per paket App Service.

Database dapat dipartisi secara horizontal, vertikal, atau fungsional.

  • Dalam pemartisian horizontal, juga disebut sharding, setiap partisi menyimpan data untuk subset dari total himpunan data. Setiap partisi memiliki skema data yang sama. Misalnya, pelanggan yang namanya dimulai dengan A-M masuk ke satu partisi, N-Z ke partisi lain.

  • Dalam pemartisian vertikal, setiap partisi menyimpan subset bidang untuk item di penyimpanan data. Misalnya, letakkan bidang yang sering diakses dalam satu partisi, dan bidang yang lebih jarang diakses di bidang lain.

  • Dalam pemartisian fungsional, data dipartisi sesuai dengan caranya digunakan oleh setiap konteks terbatas dalam sistem. Misalnya, menyimpan data faktur dalam satu partisi dan data inventaris produk di partisi lainnya. Skemanya bersifat independen.

Untuk panduan terperinci, lihat Pemartisian data.

Rekomendasi

Partisi bagian yang aplikasi berbeda. Database adalah salah satu kandidat yang jelas untuk pemartisian, tetapi juga mempertimbangkan penyimpanan, cache, antrean, dan instans komputasi.

Desain kunci partisi untuk menghindari hotspot. Jika Anda mempartisi database, tetapi satu shard masih mendapatkan sebagian besar permintaan, Anda belum menyelesaikan masalah Anda. Idealnya, beban didistribusikan secara merata di semua partisi. Misalnya, hash dengan ID pelanggan dan bukan huruf pertama nama pelanggan, karena beberapa huruf lebih sering muncul. Prinsip yang sama berlaku saat mempartisi antrean pesan. Pilih kunci partisi yang mengarah ke distribusi pesan yang merata di seluruh kumpulan antrean. Untuk informasi selengkapnya, lihat Sharding.

Partisi seputar batas langganan dan layanan Azure. Komponen dan layanan individual memiliki batas, tetapi ada juga batas untuk langganan dan grup sumber daya. Untuk aplikasi yang sangat besar, Anda mungkin perlu melakukan partisi seputar batas tersebut.

Partisi pada tingkat yang berbeda. Pertimbangkan server database yang digunakan pada VM. VM memiliki VHD yang didukung oleh Azure Storage. Akun penyimpanan milik langganan Azure. Perhatikan bahwa setiap langkah dalam hierarki memiliki batas. Server database mungkin memiliki batas kumpulan koneksi. VM memiliki batas CPU dan jaringan. Penyimpanan memiliki batas IOPS. Langganan memiliki batasan jumlah inti VM. Umumnya, lebih mudah untuk melakukan partisi lebih rendah dalam hierarki. Hanya aplikasi besar yang perlu melakukan partisi pada tingkat langganan.