Открыть сервис

Transaction Processing Performance Council

Transaction Processing Performance Council (TPC) — это некоммерческая корпорация, основанная в 1988 году, которая занимается разработкой и поддержанием эталонных тестов (бенчмарков) для оценки производительности систем обработки транзакций и баз данных. TPC устанавливает стандарты для измерения производительности, доступности и энергоэффективности вычислительных систем, обеспечивая объективные и воспроизводимые результаты, которые позволяют сравнивать различные аппаратные и программные платформы. Организация объединяет производителей компьютерного оборудования, разработчиков программного обеспечения и исследовательские организации.

История

TPC была основана в 1988 году восемью компаниями: Digital Equipment Corporation, Hewlett-Packard, IBM, NCR, Pyramid Technology, Sequent Computer Systems, Sun Microsystems и Tandem Computers. Основной целью создания организации была стандартизация методов оценки производительности систем, работающих с транзакциями в реальном времени. До появления TPC производители использовали собственные, часто несовместимые тесты, что затрудняло прямое сравнение продуктов.

Первым опубликованным стандартом стал TPC-A (1989 год), который моделировал простую банковскую транзакцию — обновление счета. В 1990 году вышел TPC-B, измеряющий производительность ядра базы данных без учета сетевых задержек. Наибольшую известность получил TPC-C (1992 год), имитирующий работу системы управления заказами в оптовой торговле. Этот бенчмарк стал де-факто стандартом для оценки производительности OLTP-систем (Online Transaction Processing) на протяжении многих лет.

В 2000-х годах TPC расширила свою деятельность на области аналитической обработки (TPC-H, 1999 год), виртуализации (TPC-VMS, 2013 год) и энергоэффективности (TPC-Energy, 2010 год). В 2020-х годах организация адаптируется к новым технологиям, включая облачные вычисления и нереляционные базы данных.

Классификация эталонных тестов

TPC разрабатывает тесты, которые делятся на несколько основных категорий в зависимости от типа рабочей нагрузки.

Тесты для OLTP (Online Transaction Processing)

Эти тесты моделируют операции с большим количеством параллельных транзакций, характерных для банковских систем, электронной коммерции и систем бронирования.

  • TPC-C — моделирует работу склада с заказами, платежами, проверкой статуса и доставкой. Включает пять типов транзакций разной сложности. Результат измеряется в транзакциях в минуту (tpmC).
  • TPC-E — более современный тест (2007 год), моделирующий деятельность брокерской фирмы. Он сложнее TPC-C, требует большего количества операций чтения и записи, а также включает транзакции с разной степенью параллелизма. Результат — tpmE.
  • TPC-VMS — тест для оценки производительности виртуализированных сред, работающих под управлением TPC-C или TPC-E. Позволяет сравнивать эффективность гипервизоров и конфигураций виртуальных машин.

Тесты для аналитической обработки (DSS/OLAP)

Эти тесты оценивают способность систем выполнять сложные запросы к большим объемам данных, характерные для бизнес-аналитики и отчетности.

  • TPC-H — моделирует работу системы поддержки принятия решений. Включает 22 сложных запроса с различными операциями (агрегация, соединение, сортировка). Результат — QphH (Queries per Hour).
  • TPC-DS — более современный тест (2013 год), моделирующий реальную среду розничной торговли с большим количеством таблиц, сложными иерархиями и запросами, требующими обработки больших объемов данных. Результат — QphDS.
  • TPCx-BB (BigBench) — тест для оценки производительности систем «больших данных» (Hadoop, Spark). Включает как SQL-запросы, так и задачи машинного обучения.

Тесты для специфических нагрузок

  • TPCx-HS — тест для оценки производительности систем Hadoop и Spark при выполнении операций сортировки и подсчета (на основе Terasort).
  • TPCx-V — тест для оценки производительности виртуализированных серверов под нагрузкой базы данных.
  • TPC-Energyстандарт для измерения энергопотребления систем во время выполнения тестов TPC. Позволяет рассчитать соотношение производительности к потребляемой энергии (например, tpmC/Вт).

Методология проведения тестов

TPC предъявляет строгие требования к проведению тестов, чтобы обеспечить их объективность и воспроизводимость.

Требования к публикации результатов

Любая организация, желающая опубликовать результат теста TPC, должна:

  • Четко описать конфигурацию системы (аппаратное обеспечение, версии ПО, настройки).
  • Предоставить полный отчет о тестировании, включая детали выполнения всех транзакций.
  • Обеспечить независимую аудиторскую проверку (сертификацию) результатов. Аудитор должен подтвердить, что тест проведен в соответствии со стандартом TPC.
  • Опубликовать результат на официальном сайте TPC, сделав его доступным для всех.

Правила валидности

  • Соблюдение ACID: система должна гарантировать атомарность, согласованность, изолированность и долговечность транзакций.
  • Воспроизводимость: тест должен быть повторен с тем же результатом (допускается отклонение не более 5%).
  • Длительность: тест должен выполняться не менее 8 часов для систем с высокой доступностью и не менее 2 часов для стандартных систем.
  • Отсутствие оптимизации под тест: запрещается модифицировать систему исключительно для улучшения результатов теста (например, отключать функции, которые не используются в тесте, но важны в реальной работе).

Применение и значение

Результаты тестов TPC широко используются в индустрии для:

  • Сравнения продуктов: производители публикуют результаты своих систем, чтобы продемонстрировать их преимущества перед конкурентами.
  • Выбора оборудования: заказчики (банки, ритейлеры, государственные учреждения) используют результаты TPC для принятия решений о закупке серверов и систем управления базами данных.
  • Оптимизации производительности: инженеры используют тесты TPC для выявления узких мест в архитектуре системы и настройки параметров.
  • Научных исследований: академические институты используют TPC для изучения производительности новых алгоритмов и архитектур.

Критика

Несмотря на широкое признание, TPC подвергается критике по нескольким направлениям:

  • Сложность и стоимость проведения тестов: полный цикл тестирования TPC-C или TPC-E может занимать недели и требовать значительных финансовых затрат на оборудование и аудит. Это ограничивает круг организаций, которые могут публиковать результаты.
  • Искусственность нагрузок: некоторые критики утверждают, что тесты TPC не полностью отражают реальные рабочие нагрузки, особенно в современных облачных и микросервисных архитектурах.
  • Медленная адаптация: TPC часто обновляет свои стандарты с задержкой по сравнению с появлением новых технологий (например, нереляционных баз данных или распределенных систем).
  • Возможность «игры» с результатами: несмотря на строгие правила, некоторые производители могут настраивать системы таким образом, чтобы максимизировать показатели в тестах, что не всегда соответствует реальной производительности в других условиях.

Интересные факты

  • Первый результат TPC-C был опубликован в 1992 году компанией IBM на системе AS/400.
  • Самый высокий результат TPC-C в истории (на 2024 год) принадлежит системе на базе процессоров Intel Xeon Platinum и СУБД Oracle Database, показавшей более 100 миллионов транзакций в минуту.
  • TPC не требует обязательной публикации результатов — компании могут использовать тесты для внутреннего тестирования без раскрытия данных.
  • В 2020 году TPC запустила инициативу по созданию тестов для квантовых вычислений, но конкретные стандарты пока не опубликованы.

Источники

  • Официальный сайт Transaction Processing Performance Council (www.tpc.org)
  • Документация по эталонным тестам TPC (TPC-C, TPC-E, TPC-H, TPC-DS)
  • Статья «Transaction Processing Performance Council» в англоязычной Википедии
  • Материалы конференций по производительности баз данных (например, VLDB, SIGMOD)
  • Публикации аналитических агентств (Gartner, IDC) по системам обработки транзакций

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →