Творець ClickHouse запакував 110 СУБД в один «залізний» сервер
Щоб запустити публічний бенчмарк і не платити пів мільйона доларів на рік за окремі віртуалки, Олексій Міловідов зібрав понад сотню систем на одному сервері.
Бенчмарки аналітичних баз даних рідко бувають простими в підтримці. Творець ClickHouse Олексій Міловідов запустив проєкт ClickBench Playground — інтерактивну пісочницю, яка дає змогу виконувати довільні запити до понад 100 різних систем керування базами даних із попередньо завантаженими 100 мільйонами рядків у кожній.
Майданчик виріс із відкритого тестування ClickBench. До списку учасників входять не лише традиційні СУБД, а й вбудовані рушії штибу DuckDB чи бібліотеки на кшталт pandas і Polars. Щоби тестувати бібліотеки маніпуляції даними на рівних умовах із серверами, розробники загортають їх у локальні HTTP-обгортки на Python.
Підтримка сотень індивідуальних bash-сценаріїв швидко застарівала: автори рішень підганяли оптимізації під стандартні запити або забували очищати системний кеш між вимірюваннями. Для стандартизації інфраструктури розробникам довелося уніфікувати інтерфейс запусків і перезавантажень за допомогою AI-інструментів, щоб коректно вимірювати «холодні» запити.
Головною перепоною стала вартість інфраструктури. Оренда окремих віртуальних машин в AWS для кожної системи коштувала б понад $500 000 на рік, тоді як підйом інстансів на вимогу забирав надто багато часу для вебсервісу. У підсумку автор розгорнув мікровіртуальні машини на базі Firecracker та QEMU на фізичному сервері AWS EC2 Metal.
Знімки сотні систем із даними мали б зайняти близько 100 терабайтів, але їх стиснули до 7,5 ТБ на локальних дисках завдяки файловій системі Btrfs із дедуплікацією блоків і компресією Zstandard. Інстанси відновлюються зі збереженого стану за лічені секунди, а будь-які помилкові чи руйнівні запити автоматично скидаються перед новим сеансом.
Такий спільний хостинг не відображає реальної поведінки СУБД на виділеному серверному залізі, проте дозволяє наочно зіставити синтаксис і коректність обчислень у різних екосистемах.
Джерело: habr
Коментарі
Допоможи покращити наступну версію: Додавай контекст або пропонуй виправлення. Після AI-перевірки коментарі можуть отримати бали для переписування. Перевірка й оновлення потребують часу; повна шкала не гарантує нової версії.