Asosiy kontentga oʻtish
Maqola

Fan olimpiadalarini onlayn o'tkazish platformasi: Toshkent xalqaro matematika olimpiadasi misolida arxitektura, yuklama sinovi va saboqlar

Akbar Bobur MansurovXalqaro Nordik universiteti
2026uz
Ochiq kirishYashil

Litsenziya: cc-by

ABI

Annotatsiya

Tadqiqot Toshkent xalqaro matematika olimpiadasi (TASIMO) uchun yaratilgan onlayn platformani tahlil qilib, fan olimpiadalarini o'tkazuvchi tizimlar uchun muhandislik xulosalarini chiqarishni maqsad qiladi. Yagona keys dizaynida to'rtta repozitoriyning manba kodi (230 022 ta bo'sh bo'lmagan qator), 435 ta kommitdan iborat versiyalar tarixi va loyiha hujjatlari o'rganildi, ekspluatatsiya davridagi 10 ta muhim nosozlik va loyihaviy kamchilik tizimlashtirildi, ulardan to'rttasining mexanizmi qayta hosil qilindi va mahalliy test muhitida yuklama sinovi o'tkazildi. Platforma — NestJS asosidagi, uchta nusxada ishlaydigan modulli monolit: umumiy holat Redis'da, ma'lumotlar PostgreSQL'da saqlanadi, imtihon sessiyasi WebSocket orqali boshqariladi va idempotent yakunlanadi. Yuklama sinovida 5 000 nafargacha virtual ishtirokchi imtihonni bir vaqtda boshladi: o'lchangan 1 850 990 ta amalning birortasi ham xato bilan yakunlanmadi, ma'lumotlar yaxlitligi har bir sinovda saqlandi. Uch nusxada 5 000 ishtirokchida boshlash kechikishining 95-persentili 1,54 s, javob tasdig'iniki 16 ms bo'ldi; bitta nusxada esa 3 000 ishtirokchida boshlash kechikishining 95-persentili 3,42 s ga yetdi. Nosozliklarning asosiy manbai uchinchi tomon xizmatlari cheklovlari, komponentlararo taymautlar, ko'p nusxali joylashtirish va mijoz–server shartnomalari bo'ldi. Bunday platformalar uchun idempotent yakunlash, tashqi chaqiruvlarni foydalanuvchi so'rovi yo'lidan chiqarish va to'liq foydalanuvchi yo'lini qamrovchi yuklama sinovlari hal qiluvchi ahamiyatga ega. An online olympiad platform: architecture, load testing and lessons from the Tashkent International Mathematics Olympiad This study analyses the online platform of the Tashkent International Mathematics Olympiad (TASIMO) to derive engineering lessons for systems that run academic olympiads. Using a single-case design, we examined the source code of four repositories (230,022 non-blank lines), the 435-commit version history and the project documentation, catalogued ten significant production incidents and design flaws, reproduced the mechanisms of four of them and ran a load test in a local test environment. The platform is a NestJS modular monolith running as three instances: shared state lives in Redis, data in PostgreSQL, and each exam session runs over WebSocket and is finalised idempotently. In the load test, up to 5,000 virtual participants started an exam simultaneously; none of the 1,850,990 measured operations failed and data integrity held in every run. With three instances and 5,000 participants, the 95th-percentile latency was 1.54 s for starting the exam and 16 ms for acknowledging an answer; with a single instance, the 95th-percentile start latency reached 3.42 s at 3,000 participants. Most incidents stemmed from third-party limits, timeouts between components, multi-instance deployment and client–server contracts. Idempotent finalisation, keeping third-party calls off the user's request path and load tests covering the whole user journey are essential for such platforms.

Identifikatorlar

Iqtiboslar va manbalar

0 ta iqtibos0 ta foydalanilgan manba