Skip to content

Preserve UDP benchmark diagnostics and opt-in ping timeout controls - #565

Draft
NikolayChirkov wants to merge 8 commits into
mainfrom
bench/win-udp-sndbuf-highq
Draft

NikolayChirkov wants to merge 8 commits into
mainfrom
bench/win-udp-sndbuf-highq

Conversation

@NikolayChirkov

Copy link
Copy Markdown
Collaborator

Цель

Сохранить оставшиеся изменения UDP-бенчмарков в main перед очисткой экспериментальных веток. Пока draft: объединённая Windows-сборка не проверена.

Проверенные исходные точки

  • main: 10d884ba3dd19183388b8baf96324b6480379104
  • bench/win-udp-sndbuf-highq: 9468f5682e718a5af00dc193150a0f8885626455
  • Ветка эксперимента: 8 собственных коммитов, 22 коммита main отсутствуют в её истории. Простая замена файлов main файлами ветки недопустима.

Что сохранить

  • Диагностику connection/ping/route events и instance IDs за выключенным по умолчанию AE_BENCH_CONNECTION_EVENT_DIAG.
  • AE_BENCH_PING_MIN_TIMEOUT_MS с production default 0; сохранение pending ping при включённом экспериментальном floor.
  • Совместимость с существующими локальными benchmark-тестами.

Windows IOCP, 65536-byte UDP receive buffer, SO_SNDBUF opt-in и large-datagram opt-in уже внесены в main коммитом 10d884b; не дублировать и не откатывать их. Сохранить актуальные изменения quarantine/reconcile из main.

До merge

  • Сохранить локальные незапушенные исходники/тесты отдельно от state, ключей, сборок и сырых артефактов.
  • Согласовать конфликтующие изменения с актуальным main без force-push main.
  • Исправить зависимость заголовков в win_udp_socket.cpp: блок large-UDP использует std::ofstream/CRT allocation functions, но <fstream>/<cstdlib> подключены только при AE_BENCH_WIN_UDP_SNDBUF_BYTES. Проверить large-UDP-only сборку без SO_SNDBUF.
  • Проверить Windows TCP/UDP production configs и экспериментальные configs; unit-тесты ping floor 0/1000/30000, pending-ping lifetime, connection diagnostics, scheduler, handshake и payload size. Не выполнять облачные нагрузочные прогоны.
  • Экспериментальные 30 s timeout, большие очереди и IP fragmentation не делать production defaults.
  • Не удалять head/родственные экспериментальные ветки до подтверждённого сохранения их изменений и проверки локальных worktrees.

Статус проверки

Статический аудит опубликованного кода выполнен частично. Локальные незапушенные файлы, Windows build и тесты объединённого дерева в этой проверке недоступны; PASS не заявляется.

NikolayChirkov and others added 8 commits October 28, 2026 01:16
Route errored GetQueuedCompletionStatus results to the registered socket callback instead of dropping them in the poller loop.
Use a 65536-byte receive buffer so overlapped UDP recv can hold full datagrams beyond the 1200 B send MTU preference without WSAEMSGSIZE disconnects.

Co-authored-by: Cursor <cursoragent@cursor.com>
When AE_BENCH_PING_MIN_TIMEOUT_MS is positive, avoid emplace that cancels in-flight pings; reschedule Start after success via scheduler.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant