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 →