Rabu, 16 Oktober 2024

MYSQL-sharding data

 Mengapa Anda harus menghindari Sharding Basis Data!

© Mahadi Hasan Joy

Mengapa Anda harus menghindari Sharding Basis Data!

Sebelum melakukan clustering/sharding, kita mungkin tidak perlu melakukan sharding. Kita perlu tahu kapan kita akan melakukan sharding pada database kita. Jadi hari ini saya akan memberi tahu kapan kita benar-benar membutuhkan sharding atau, clustering atau, apakah ada alternatif atau, tidak.

Sharding menambahkan kompleksitas pemrograman dan operasional tambahan ke aplikasi Anda. Anda kehilangan kemudahan mengakses data aplikasi di satu lokasi. Mengelola beberapa server menambah tantangan operasional.

Pertama-tama, kita perlu tahu tentang Sharding.

Sharding adalah konsep yang membagi kumpulan data besar menjadi data kecil di beberapa instans. Ketika satu koleksi/tabel menangani jutaan transaksi data dan menyimpan semua data dalam satu perangkat, maka semua kueri dan transaksi akan berjalan lambat dan sistem bahkan dapat terhenti karena penggunaan CPU yang tinggi di server. Untuk mengatasi situasi ini, database memiliki konsep sharding, meskipun secara logis semua shard bekerja sebagai satu koleksi. Sharding memungkinkan penskalaan horizontal penulisan data dengan mempartisi data di beberapa server menggunakan  kunci shard .

Pemecahan Basis Data


Saat kita butuh sharding!

Nah! Saat aplikasi kita tiba-tiba menjadi populer. Lalu lintas dan data mulai tumbuh, dan basis data kita semakin terbebani setiap hari. Dalam skenario khusus ini, kita dapat memikirkan tentang sharding.

Berikut adalah beberapa skenario umum di mana pembagian basis data mungkin bermanfaat:

  1. Jumlah data aplikasi tumbuh hingga melampaui kapasitas penyimpanan satu simpul basis data.
  2. Volume penulisan atau pembacaan pada basis data melampaui apa yang dapat ditangani oleh satu node atau replika pembacaannya, sehingga mengakibatkan waktu respons melambat atau batas waktu habis.
  3. Bandwidth jaringan yang dibutuhkan oleh aplikasi melampaui bandwidth yang tersedia untuk satu node basis data dan semua replika baca, sehingga mengakibatkan waktu respons melambat atau batas waktu habis.

Sekarang lihat apakah sharding dapat dihindari atau ditunda.

  1. Dapatkan mesin yang lebih mahal.
  2. Jika aplikasi Anda dibatasi oleh kinerja pembacaan, Anda dapat menambahkan cache atau replika basis data. Mereka menyediakan kapasitas pembacaan tambahan tanpa mengubah aplikasi Anda secara signifikan.

Kesimpulan

Sharding dapat menjadi solusi yang bagus bagi mereka yang ingin menskalakan basis data mereka secara horizontal. Namun, hal itu juga menambah banyak kerumitan dan menciptakan lebih banyak titik kegagalan potensial untuk aplikasi Anda. Sharding mungkin diperlukan bagi sebagian orang, tetapi waktu dan sumber daya yang dibutuhkan untuk membuat dan memelihara arsitektur sharding dapat lebih besar daripada manfaatnya bagi yang lain.

[NB: Kapasitas penyimpanan tumbuh dengan kecepatan hukum Moore. Dari Amazon, Anda bisa mendapatkan server dengan 6,4 TB SDD, 244 GB RAM, dan 32 core. Bahkan pada tahun 2013, Stack Overflow berjalan pada satu server MS SQL. (Beberapa orang mungkin berpendapat bahwa pemisahan Stack Overflow dan Stack Exchange merupakan bentuk sharding)]

Tidak ada komentar:

Posting Komentar