Оптимизация затронула структуру данных, которые обслуживают сервис 1.1.1.1. До правок размер одной DNS-записи составлял 953 байта, после — 420 байт. Учитывая, что в системе единовременно хранится свыше 250 миллиардов записей, каждый сэкономленный байт масштабируется в сотни гигабайт памяти. Основной выигрыш в 15 ТБ принесла замена динамических контейнеров Vec и String на структуры с фиксированным размером: прежде система выделяла избыточный объем под кэш, который не использовался.
Дополнительно разработчики объединили списки записей в единый буфер и избавились от дублирования доменных имен. Теперь данные хранятся в компактном сетевом формате, что исключило случаи, когда крошечные записи занимали в памяти столько же места, сколько крупные массивы. Помимо освобождения ресурсов, обновление ускорило запись в кэш на 43%, а время поиска сократилось до 670 наносекунд.




Комментарии (0)
Пока нет комментариев. Будьте первым!