В истории Tesla и YDB есть одно интересное сходство. В Tesla первой машиной стал Roadster, главной чертой которого были разгон и скорость, то есть performance. Аналогично развивался и YDB: мы начали с масштабирования до бесконечности и отказоустойчивости, и только потом, решив эти задачи внутри Яндекса, пришли на более «консьюмерский» рынок.
Чтобы сделать YDB более удобным для обычных пользователей с небольшими данными (или вообще без них), мы сейчас работаем над двумя проектами:
1️⃣ Tiny YDB: конечная цель — запускаться на половине ядра CPU. Сейчас в Yandex Cloud доступен Managed YDB с 4 ядрами, а внутри мы уже активно тестируем YDB на 2 ядрах;
2️⃣ Zero CPU YDB: уменьшаем потребление CPU, когда пользователи ничего не делают с YDB. Стремимся к нулю, а если уйдём в минус, то будем считать, что просто перевыполнили план.
В этом посте мы подробно расскажем о текущем статусе zero CPU и о первых, но значительных улучшениях. Сразу вынуждены признаться, что обычно запускаем YDB где угодно, кроме наших рабочих ноутбуков: на разработческих железных серверах и в облаке. О том, что YDB, запущенный на ноутбуке и не выполняющий никаких запросов, ощутимо сажает батарейку, мы узнали от наших пользователей. Мы проверили и обнаружили, что YDB действительно в фоне потребляет 6.5% ядра CPU. Поэтому сразу занялись этой проблемой. Забегая вперёд: мы уже смогли уменьшить это значение в 3.5 раза до 1.8%, работа продолжается.