Tidak ada orang lain yang memiliki pengalaman menjalankan sesuatu seperti ini? Hah.
Ada beberapa alasan yang menjembatani kode dan sistem. Pertama, ingat bahwa sebagian besar mesin MMO 'besar' saat ini diprogram beberapa tahun yang lalu, dan meskipun ada peningkatan grafis dan teknologi sejak itu, masih tergantung pada cara banyak sistem ini ditulis pada tahun 2000 atau lebih. Eve-Online, misalnya, masih berjalan pada satu contoh besar Microsoft SQL Server, itulah sebabnya mereka selalu berusaha menarik lebih banyak darinya dengan memutakhirkan perangkat keras.
Contoh peningkatan sejak WoW dan EVE dimulai adalah pekerjaan yang dilakukan dalam database kunci / nilai terdistribusi seperti Google MapReduce (dan ini adalah implementasi open-source, Hadoop), layanan antrian pemrosesan respons afirmatif yang sangat cepat (Amazon SQS), dan lainnya " cloud "berorientasi teknologi.
Saya memiliki pengalaman paling banyak dengan EVE (saya lebih seperti pria laser daripada pria battleaxes), jadi beberapa contoh ini lebih berorientasi pada EVE.
Sejauh alasan Sistem:
- Node fisik gagal secara konsisten. Ketika sebuah simpul gagal, biasanya aktivitasnya dimigrasi ke tempat lain menggunakan sejumlah cara. Namun, simpul perlu dimasukkan kembali ke layanan secepat mungkin. Dalam kasus EVE, mereka menggunakan bahasa pemrosesan stackless dan server virtual; Saya tidak yakin seperti apa arsitektur Blizzard.
- Konsistensi basis data perlu diperiksa, log harus disiram, dan indeks dan cache data perlu dibangun kembali. Ini sangat penting dalam sistem seperti EVE dengan hanya satu contoh basis data "langsung".
- Tambalan sistem operasi perlu diterapkan pada saat mereka dapat mem-boot ulang node tanpa harus memiliki terlalu banyak aktivitas yang bermigrasi ke tempat lain. Migrasi membutuhkan banyak sumber daya jaringan yang dapat didedikasikan untuk pemrosesan online.
- MMO berbasis RDBMS memiliki masalah besar dengan penguncian data dan integritas referensial. Downtime digunakan untuk membersihkan kunci basi dan jeda integritas dari log aktivitas.
- Sebagian besar game menerapkan cache data yang berlokasi geografis untuk informasi statis atau semi-statis (lihat data ringkasan cache di bawah) di area penggunaan berat, yaitu pantai timur vs pantai barat AS. Tembolok ini diperbarui secara manual selama waktu henti.
Sejauh alasan Perangkat Lunak:
- Game, saat beroperasi, menggunakan banyak OLTP - yaitu On Line Transaction Processing - jenis membaca / menulis ke basis data. Namun, terkadang Anda menginginkan laporan ringkasan ... seperti berapa banyak binatang buas tertentu yang telah Anda bunuh dalam 3 tahun terakhir penggilingan. Itu paling baik ditangani oleh laporan OLAP - yaitu On Line Analytical Processing - yang berisi informasi ringkasan berdasarkan banyak baris dalam dataset raksasa. Pada kenyataannya, gim menerapkan sistem yang menggunakan OLAP untuk membangun cache untuk membatasi jumlah kueri yang perlu dibaca - yaitu, mereka membangun total pada tanggal tertentu, dan kemudian ketika Anda mengajukan pertanyaan mereka hanya membaca baris dari toko OLTP yang merangkum periode waktu sejak tanggal tertentu. Gabungkan keduanya, dan Anda benar-benar dapat menghitung seberapa tidak berharga hidup Anda jadinya.
- Hot-patching yang disebutkan di atas, yang saya lihat sebagai masalah perangkat lunak tetapi pengembang perangkat lunak melihat sebagai masalah sistem. ;)
- Mengisi ulang toko barang - di Eve, sabuk asteroid disegarkan setiap malam dan kompleks tertentu didaur ulang juga. Hal ini dapat dilakukan sampai batas tertentu saat online, tetapi beberapa algoritma terlalu kompleks dan perlu dilakukan dalam mode off-line karena mereka secara singkat membawa database ke lutut sementara mereka merangkum kegiatan ekonomi hari sebelumnya.
Menjalankan ekonomi dengan loop tertutup dan terbuka adalah salah satu masalah bagi operator MMO - jika Anda tidak percaya, baca beberapa makalah akademis yang telah ditulis tentang ekonomi gim dan beberapa studi gim lama seperti Ultima Online yang memiliki ekonomi yang relatif primitif. Analisis yang perlu terjadi untuk mengisi loop terbuka dan untuk mengidentifikasi kecurangan dan kegiatan ekonomi negatif lainnya perlu terjadi secara offline dengan snapshot data, yang kadang-kadang hanya dapat diambil ketika database sepenuhnya terkunci.
Jika Anda perhatikan, pemeliharaan Eve terjadi saat ini siang di Inggris, di mana pusat data utama berada.