Недавние публикации компании PlanetScale, описывающие их сравнительные бенчмарки для PostgreSQL, вызвали широкий интерес в сообществе разработчиков и инженеров баз данных. Особенно примечательно, что результаты этих тестов были подвергнуты критическому анализу и пересмотрены командой Xata — собственной платформы управления и масштабирования PostgreSQL, находящейся в стадии частного бета-тестирования. Такой подход позволяет глубже понять, как производительность различных решений соотносится не только с цифрами, но и с реальными сценариями использования. Опубликованные PlanetScale бенчмарки сфокусированы на сравнении их растущего предложения «Metal» с другими сервисами PostgreSQL. При этом применялась серия тестов различной направленности, включая классический TPC-C, ориентированный на нагрузку OLTP, тесты на чтение и измерение латентности простых запросов.
Однако как и всякий сравнительный анализ, эти бенчмарки вызвали сразу несколько вопросов, связанных с репрезентативностью, методологией и амбициями такого рода замеров. Одной из основных проблем стал выбор фиксированных масштабных параметров, что несколько снижает динамику оценки роста базы данных. Использование одного размера БД — около 500 ГБ для TPC-C — упускает из виду реальную нагрузку при увеличении данных и последующих вызовах оптимизации и обслуживания. Более того, сам TPC-C является классическим, но уже устаревшим сценарием, моделирующим продажи на оптовом складе, где основная нагрузка приходится на интенсивные операции записи. В современных условиях бизнесы существенно чаще сталкиваются с более смешанными или даже преимущественно считывающими нагрузками, что делает вопросы релевантности подобных тестов весьма спорными.
OLTP-тест с операциями только для чтения также представляет спорный кейс. Его масштаб с огромным количеством строк в таблицах — например, тысячи миллионов — предназначен в первую очередь продемонстрировать различие в типах хранилищ и производительности ввода-вывода. Но опять же, реальная рабочая нагрузка на большинство приложений может значительно отличаться. Замеры латентности простых запросов «select 1;» 200 раз подряд задают минимальную базовую планку, но не раскрывают сложности более насыщенных сценариев. Методология проведения тестов также подверглась критике.
Во-первых, запуск бенчмарков сразу после загрузки данных, без дополнительных процедур очистки и оптимизации, например, выполнения команд CHECKPOINT и VACUUM, мог привести к нежелательным накладным расходам и ухудшению показателей. Во-вторых, использование только дефолтных настроек PostgreSQL на всех протестированных платформах ограничивает раскрытие потенциала конкретных сервисов. Настройка параметров должна учитывать специфику железа, конфигурации хранения и конкретного рабочего профиля нагрузки. В противном случае часть ресурсов, таких как оперативная память или процессор, может оставаться неиспользованной, заставляя сравнение выглядеть не совсем честным. Несмотря на это, стоит признать, что PlanetScale пошла навстречу и предоставила доступ к исходным JSON-результатам тестов и ответила на запросы по методологии, что способствует общей транспарентности и возможности воспроизведения для других участников рынка, включая Xata.
Представители Xata в свою очередь провели собственные измерения, учитывая как уже опубликованные стандарты, так и собственные наработки. Они использовали архитектуру с сетевым хранилищем на базе NVMe over Fabrics через Intel SPDK, что демонстрирует возможность высокого уровня IOPS, сопоставимого с локальными NVMe-дисками. Их тесты показали результат около 25 тысяч запросов в секунду при 64 подключениях, что подтверждает практичность использования изолированного хранения и вычислений, а также преимущества настройки конфигурации PostgreSQL под конкретные ресурсы и сценарии. Важным отличием платформы Xata стало использование восьмиъядерного процессора на тестовом экземпляре xata.2xlarge, тогда как сервис PlanetScale использовал четыри ядра в M-320, что заметно повлияло на производительность.
Более того, Xata продемонстрировала, что даже ограничившись четырьмя ядрами и без дополнительной тонкой настройки, можно достичь примерно 20 тысяч запросов в секунду, что является весьма достойным результатом. Изучая стоимость, Xata приводит расчеты, что использование подобных мощностей и хранения стоит около 1290 долларов в месяц, что находится немного ниже цены предложения PlanetScale M-320. Такой расчет учитывает оплату compute-ресурсов и только реально потребляемое дисковое пространство, что подкрепляет конкурентные преимущества модели Xata по соотношению цена-качество. Помимо цифр, важно понимать ограничения самого подхода Metal-архитектуры от PlanetScale. Неавтоматическое масштабирование дискового пространства и необходимость заранее выбирать объемы хранения и вычислительных ресурсов накладывают риски ресурсных недорасходов или, наоборот, дефицита.
Переход в режим только на чтение при приближении к лимиту хранилища является серьезным минусом, ведь миграция к более крупному диску занимает время, а перепланировка ресурсов связана с дополнительными затратами и сложностями. Такой тип провизирования заставляет завышать дисковую емкость для предотвращения простоев, что отражается на общей экономике. В свою очередь, Xata активно позиционирует гибкость архитектуры разделения хранения и вычислений, позволяющую более тонко балансировать ресурсы и масштабировать непосредственно под потребности без значительных компромиссов по производительности. Дополнительные возможности платформы — быстрое копирование данных (copy-on-write branching), анонимизация, масштабирование к нулю и безостановочные изменения схемы — превращают её не просто в высокопроизводительный сервис, но и в удобное средство для разработки и эксплуатации баз данных. Безусловно, тесты PlanetScale открывают интересный пласт информации и предоставляют платформам возможность показать свои возможности при типичной нагрузке.
Однако важно рассматривать их с оглядкой на предоставленную методологию, ограничения и реальную практику. Только комплексный взгляд на качество, производительность, надежность и функциональность формирует обоснованный выбор при подборе Postgres-решения. В заключение, открытость данных и возможность независимого воспроизведения — залог справедливого и полезного сравнительного анализа. Совместные усилия сервисов по развитию нейтральных и прозрачных бенчмарков способны подтолкнуть рынок к дальнейшему улучшению продуктов, что выгодно пользователям и индустрии в целом. Команда Xata уже активно участвует в подобных инициативах, предлагая собственные инструменты для стресс-тестирования и аналитики, надеясь внести вклад в построение более объективной картины современного состояния PostgreSQL-платформ.
Для пользователей и организаций итоговое решение выбора базы данных должно опираться не только на показатели скорости выполнения операций, но и на такие параметры, как гибкость архитектуры, возможности масштабирования, функциональные преимущества и экономика эксплуатации. Только комплексный подход позволит подобрать наиболее подходящую платформу под конкретные задачи и обеспечить стабильную работу в долгосрочной перспективе.