Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PolyScale.ai – Menskalakan MySQL &PostgreSQL dengan Caching Global

Pos tamu oleh Ben Hagan dari PolyScale.ai

Aplikasi berbasis data mencakup berbagai kompleksitas, dari layanan mikro sederhana hingga sistem berbasis peristiwa waktu nyata di bawah beban yang signifikan. Namun, seperti yang akan dibuktikan oleh tim pengembangan dan/atau DevOps mana pun yang ditugaskan untuk meningkatkan kinerja, membuat aplikasi berbasis data menjadi cepat secara global adalah “tidak sepele”.

Arsitektur aplikasi modern seperti JAMstack memberlakukan pemisahan masalah dengan memindahkan data dan persyaratan kegigihan ke API. Memisahkan konten statis, logika bisnis, dan persistensi data dengan rapi memungkinkan masing-masing diskalakan dan dikelola secara independen.

Banyak perusahaan juga berfokus pada pemisahan aplikasi monolitik mereka untuk memanfaatkan layanan mikro dan sering kali diterapkan dalam lingkungan tanpa server. Pergeseran ke lebih banyak decoupling untuk isolasi lingkungan yang lebih baik juga dapat memberikan kelincahan regional yang lebih baik sehubungan dengan di mana logika bisnis diterapkan dan bagaimana skalanya. Aplikasi sekarang dapat digunakan secara global dalam satu tindakan CI/CD.

Namun tingkat data menimbulkan kompleksitas yang lebih besar. Ada tantangan praktis seperti konsistensi transaksional, ketersediaan tinggi, dan kinerja kueri di bawah beban. Ada kendala seperti mematuhi PII dan persyaratan kepatuhan. Dan ada batasan yang tidak dapat diatasi seperti yang diberlakukan hukum fisika pada latensi.

Caching Aplikasi

Banyak tim pengembangan menggunakan cache untuk memecahkan masalah ini di lapisan aplikasi, yang didukung oleh lapisan persistensi seperti Redis atau sistem buatan sendiri. Konsepnya sederhana:menyimpan data yang diminta oleh klien untuk jangka waktu tertentu dan jika kami melihatnya lagi, kami telah siap untuk melayani permintaan berikutnya tanpa menggunakan database asal. Merancang strategi caching yang baik membawa serangkaian tantangannya sendiri:data apa yang akan di-cache, bagaimana cara menyimpannya, dan kapan. Dan mungkin yang lebih penting, apa, bagaimana, dan kapan harus mengeluarkan data dari cache. Strategi caching harus didefinisikan dengan baik, dipahami dan digunakan untuk setiap set fitur baru yang ditambahkan ke aplikasi, di seluruh pengembang dan tim yang berpotensi departemen. Waktu pengembangan dan kerumitan adalah biayanya.

Replika Baca Basis Data

Atau, banyak perusahaan mengatasi latensi dan tantangan penskalaan dengan replika baca database. Replika baca adalah instans read-only dari database primer dan secara otomatis disimpan disinkronisasi (asinkron) saat pembaruan dibuat ke primer. Merancang strategi replika-baca yang solid adalah tugas berat yang penuh dengan biaya dan kerumitannya sendiri yang halus dan tidak terlalu halus.

Sebagian besar kerumitan itu dapat dijinakkan dengan ScaleGrid. Replika baca yang terkelola sepenuhnya dapat diterapkan dengan mengeklik tombol dari ScaleGrid (dengan dukungan HA) ke semua cloud dan region utama, dengan manfaat utamanya adalah data tetap sinkron dengan database utama secara otomatis.

Namun, replika baca tidak dapat lepas dari keharusan menjalankan beberapa, mungkin banyak, server database dan biaya terkaitnya.

Pendekatan berbeda:PolyScale.ai Edge Cache

PolyScale adalah cache tepi basis data yang menggunakan pendekatan berbeda. Cache PolyScale memberikan dua manfaat utama:peningkatan latensi kueri dan pengurangan beban kerja database. Mari kita uraikan sedikit:

  • Latensi regional diselesaikan seperti CDN; PolyScale menyediakan jaringan edge global Points of Presence (PoP) dan menyimpan respons kueri basis data di dekat klien asal, sehingga mempercepat respons secara signifikan.

  • Baca Kinerja Kueri ditingkatkan secara dramatis karena PolyScale akan melayani permintaan basis data yang di-cache dalam <10 md, tidak peduli kerumitan kuerinya. Selain itu, mengingat permintaan baca dilayani dari PolyScale, beban ini tidak pernah memengaruhi basis data asal.

Implementasi

PolyScale dapat diimplementasikan tanpa menulis kode atau menggunakan server dalam beberapa menit. Cukup perbarui string koneksi klien basis data (baik itu aplikasi web, layanan mikro, atau alat BI seperti Tableau) dengan nama host PolyScale. Lalu lintas basis data akan melewati jaringan tepi dan siap untuk di-cache.

Karena kompatibel dengan MySQL dan Postgres, PolyScale sepenuhnya transparan untuk klien basis data, karenanya tidak ada yang berubah dengan arsitektur Anda saat ini. Tidak ada migrasi, tidak ada perubahan transaksionalitas, dan tidak ada perubahan pada bahasa kueri Anda saat ini. Benar-benar pasang dan mainkan.

Bagaimana Cara Kerjanya?

Proxy jaringan global PolyScale dan men-cache protokol kabel basis data asli sehingga transparan untuk klien basis data mana pun. Kueri diperiksa dan dibaca (SQL SELECT ) dapat di-cache secara geografis dekat dengan asal yang meminta untuk kinerja yang dipercepat. Semua lalu lintas lainnya (INSERT , UPDATE dan DELETE ) dengan mulus melewati ke database sumber.

AI PolyScale sedang menuju otomatisasi penuh. Alih-alih mengonfigurasi cache sesuai kebutuhan, platform akan mengukur arus lalu lintas dan terus menyesuaikan properti caching untuk memberikan kinerja yang optimal. Anda dapat membaca lebih lanjut tentang model caching AI PolyScale di sini.

Kesimpulan

PolyScale.ai menyediakan pendekatan modern, plug and play untuk kinerja dan penskalaan di tingkat data. Platform PolyScale berada di jalur menuju otomatisasi penuh di mana setelah terhubung, akan mengelola cache data secara cerdas untuk kinerja yang optimal.

Mengingat PolyScale kompatibel dengan database Anda saat ini, tidak ada perubahan yang diperlukan untuk menskalakan pembacaan secara global dalam hitungan menit. Cobalah!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli::mysqli():(HY000/2002):Tidak dapat terhubung ke server MySQL lokal melalui soket 'MySQL' (2)

  2. Penyimpanan alamat IP dalam database MySQL menggunakan PHP

  3. Kelompokkan berdasarkan tanggal hanya pada kolom Datetime

  4. mysql_fetch_array() mengharapkan parameter 1 menjadi masalah sumber daya

  5. Contoh Spring Boot CRUD Dengan MySQL