Lembar contekan teknik AWS yang penting:
Server → EC2
Server palsu → Lambda
Hard drive → EBS
S3 → hard drive lambat
Cosplay VPC → LAN
IAM → izin ditolak
CloudWatch → "kami memiliki datadog di rumah"
Jangan pernah menjalankan kueri tanpa batas waktu.
Satu kueri nakal atau lonjakan beban dapat menyebabkan stall atau waktu henti aplikasi tanpanya. Mari kita pikirkan alasannya.
Pertimbangkan kasus di mana kueri yang berjalan lama secara tidak sengaja diperkenalkan ke aplikasi kita. Database biasanya hanya memproses kueri berumur pendek (10 ms atau kurang) dan tiba-tiba kita memiliki kueri baru yang membutuhkan waktu 1000 ms per eksekusi.
Ini tidak hanya akan membabi sumber daya, tetapi juga akan meningkatkan jumlah transaksi simultan. Kita akan mencapai batas koneksi, batas txn, atau menggunakan 100% dari cpu / iops database.
Sekarang pertimbangkan skenario yang sama, tetapi kami menempatkan batas waktu 250 ms pada setiap transaksi (sisi database), dengan logika coba ulang backoff eksponensial + jitter (sisi aplikasi). Kami sekarang telah membatasi radius ledakan dari setiap kueri tunggal. Kueri yang berjalan lama akan terbunuh, dan logika mundur meminimalkan risiko kawanan yang menggelegar.
Dengan memantau batas waktu ini, kita dapat dengan cepat mengidentifikasi kueri yang bermasalah dan mengembalikan perubahan.
Log write-ahead (WAL) adalah bagaimana database melakukan commit dengan cepat dan bagaimana mereka pulih dengan aman dari error.
Di luar B-tree, ini mungkin struktur terpenting di Postgres dan MySQL.
(ini disebut "log ulang" di MySQL-land)