Арифметичні схеми, регістри та частина логіки процесора замінили приблизно 6,4 мільйона записів.
Інженер Корі Квінн використав DNS для виконання обчислень у *Doom*, що призвело до створення функціональної, хоча й ледь іграбельної, версії культового класичного шутера. Після серії оптимізацій час, необхідний для обробки одного натискання клавіші, зменшився з 577 секунд до 54,4 секунди; для порівняння, *Doom* зазвичай працює зі швидкістю 35 ігрових тактів за секунду.
Квінн використав унікальну характеристику DNS. Як розподілена база даних, Система доменних імен (DNS) здатна не лише зіставляти домени з IP-адресами, але й зберігати попередньо обчислені значення. Інженер заповнив DNS приблизно 6,4 мільйонами записів, що містять таблиці істинності для арифметичних та логічних операцій.
Отримана система працює на 32-бітній архітектурі RISC-V. Сам BIND не виконує машинні інструкції та не функціонує як процесор; натомість компілятор попередньо декодує команди, невелика керуюча програма пов'язує операції та керує часом, тоді як DNS-сервер отримує ключі, повертає попередньо обчислені відповіді та підтримує стан машини.
Швидкість виявилася основною проблемою. Хоча BIND відповідає приблизно за сім мікросекунд для TCP та чотири мікросекунди для UDP, навіть прості операції вимагають кількох запитів. Додавання 32-біт займає чотири DNS-запити, умовний перехід — п'ять, а генерація одного кадру включає приблизно 6,6 мільйона DNS-транзакцій.
The initial attempt to process a "Right" key press took 577 seconds. Quinn switched to UDP, implemented pipelining, packed registers more densely, reduced the number of requests, and wrote the state back to DNS less frequently. The time dropped first to 146.3 seconds and then to 54.4 seconds, resulting in a total speedup of 10.6x.
Even the theoretical limit remains far removed from normal gameplay. A single Doom game tick should take approximately 28.6 milliseconds. The current implementation requires about 54,000 milliseconds, meaning performance needs to improve by roughly three orders of magnitude to reach an acceptable speed.
To save the state, Quinn utilized the DNS UPDATE mechanism defined in RFC 2136. A write operation succeeds only if the current state matches the expected value, allowing for the detection of conflicting changes. Paul Vixie, a co-author of RFC 2136 and the architect of BIND 8, described the project as the best application of DNS UPDATE he had ever seen.
The experiment runs on standard BIND 9.20 (Debian-based) inside a container with networking disabled, ensuring that millions of requests do not reach the public internet. A pre-prepared Doom checkpoint is used for the demonstration; while fully loading the game via DNS would take several hours, the initial load of 6.4 million records takes about a minute.