한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Buku Putih Lag Game › L12 Database

Progres hilang karena interval penyimpanan yang panjang Periodic save window

ID penyebab db-save-interval · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur DB (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

Jika data hanya disimpan beberapa menit sekali untuk mengurangi beban, progres akan hilang saat server mati di antara dua penyimpanan.

Mengapa State karakter disimpan sekali setiap beberapa menit → Akibatnya Di sela waktu itu server crash atau mengalami gangguan → Di layar Setelah login ulang, karakter kembali ke kondisi beberapa menit sebelumnya (rollback)

Gejala
Aksi hilang / rollback
Faktor
Packet loss
Siapa yang mengalami
Seluruh server, Lokasi/channel tertentu
Kapan
Sesekali secara acak
Penanggung jawab
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur DB (Tim Infrastruktur)
Tugas Tim Pengembang Game
Simpan event penting (trade, perolehan item langka) saat itu juga, catat log perubahan.
Tugas Tim Infrastruktur
Pastikan DB punya sisa kapasitas IOPS dan CPU untuk menanggung penulisan yang bertambah saat interval penyimpanan diperpendek.
Di grafik
Koneksi putus serentak · Jumlah koneksi, jumlah laporan rollback
Yang diperiksa
Bandingkan waktu crash atau gangguan dengan waktu penyimpanan terakhir karakter yang melaporkan rollback (log penyimpanan di server game atau kolom waktu perubahan di DB)
Cocok jika
Titik kembalinya karakter sama dengan waktu penyimpanan terakhir sesaat sebelum crash, dan waktu yang hilang lebih pendek dari interval penyimpanan
Tidak cocok jika
Log server game mencatat penyimpanan sudah selesai tetapi data tetap kembali ke kondisi lama: lebih mungkin data hilang saat failover DB (db-failover) atau nilai lama dibaca dari replika (db-replica-lag)
Sarana pemeriksaan
Log dan metrik server atau klien game

Sumber

  1. Asynchronous Commit (PostgreSQL Documentation) PostgreSQL
    Mengumpulkan catatan lalu menuliskannya ke disk belakangan menaikkan throughput, dengan konsekuensi transaksi terbaru bisa hilang saat terjadi gangguan (trade-off yang sama)
  2. Redis persistence Redis
    Jika snapshot RDB dibuat setiap beberapa menit, kehilangan data beberapa menit terakhir saat terminasi abnormal adalah risiko yang harus diterima

Lihat juga

Lapisan yang sama: L12 Database

Penyebab di lapisan lain dengan gejala yang sama (Aksi hilang / rollback)

Lihat kartu interaktif dengan gambar dan simulasi