ТПК-С

TPC-C , сокращение от Transaction Processing Performance Council Benchmark C , — это тест, используемый для сравнения производительности систем онлайн-обработки транзакций (OLTP). Этот отраслевой стандарт был опубликован в августе 1992 года и в конечном итоге заменил более ранний TPC-A, который был объявлен устаревшим в 1995 году. Он претерпел ряд изменений, чтобы сохранить его актуальность, поскольку производительность компьютера выросла на несколько порядков с текущей версией. по состоянию на 2021 год [update], 5.11, выпущенная в 2010 году. В 2006 году к пакету был добавлен новый тест OLTP, TPC-E, но TPC-C по-прежнему широко используется.
Система TPC-C моделирует оптовую операцию с несколькими складами, известную просто как «Компания». В минимальном тесте у компании есть десять складов, на каждом из которых установлено десять пользовательских терминалов. Каждый склад обслуживает десять определенных торговых районов, в каждом из которых обслуживается 3000 клиентов, которые делают заказы по каталогу продукции, состоящему из 100 000 позиций. Наиболее частыми транзакциями являются заказы клиентов (в среднем по десять позиций в каждом заказе) и платежи клиентов. Менее частые запросы запрашивают статус заказов и складских запасов, отгружают заказы и пополняют запасы, которые заканчиваются. Чтобы протестировать производительность конкретной системы, количество складов увеличивается до необходимого минимума, необходимого для измерения целевого уровня производительности. [1]
Результаты теста измеряются в транзакциях в минуту, известных как tpmC . Первый результат tpmC был опубликован в сентябре 1992 года для IBM AS/400 и дал результат 54 tpmC. К 2000-м годам средний результат для высокопроизводительных машин составил 2,4 миллиона tpmC, и компании создавали системы очень больших размеров, пытаясь побить рекорд. Текущий рекорд был установлен в 2020 году с использованием облачных вычислений , обеспечивших 707,3 млн tpmC. Недавние результаты для небольших локальных систем были сосредоточены на снижении стоимости tpmC.
IBM модифицировала TPC-C, чтобы создать упрощенную версию, известную как рабочая нагрузка коммерческой обработки , для собственного внутреннего использования. Подобные преобразования являются обычным явлением, но обычно не известны за пределами соответствующих компаний.
История
[ редактировать ]Предыдущая работа
[ редактировать ]Выпуск реляционных баз данных , таких как Oracle, привел к дебатам в отрасли между реляционной моделью и более старыми концепциями CODASYL . Из этих дебатов выросло желание предложить реалистичные оценки производительности. В 1985 году Джим Грей из Tandem Computers стал соавтором статьи, ныне известной как «Anon et.al.», в которой был изложен потенциальный стандарт под названием DebitCredit. [2]
Это быстро привело к множеству модификаций и сравнению яблок с апельсинами, что, в свою очередь, привело к попытке Тома Сойера и Омри Серлина в июне 1988 года стандартизировать систему и опубликовать новую версию. [3] Публикация этой версии и продолжающиеся разногласия по поводу ее использования привели к созданию в августе 1988 года отраслевого консорциума под названием «Совет по производительности обработки транзакций» или TPC, который взял на себя эту работу и создал официальный отраслевой стандарт. [4]
Компания TPC разработала свой первый стандартный эталонный тест под названием TPC-A на основе DebitCredit с добавлением полных свойств ACID . Другие требования были в первую очередь организационными; Чтобы представить результат, теперь нужно было предоставить полную информацию о системе и тестировании, с предложением провести аудит третьей стороной, а любая информация о ценах должна была включать контракты на техническое обслуживание на пятилетний период. Вскоре после этого был выпущен аналогичный тест под названием TPC-B, который отличался главным образом тем, что использовал пакетный ввод, а не эмулировал ввод с терминала. [5]
Ввод заказов
[ редактировать ]
Примерно в то время, когда TPC-A завершалась, Digital Equipment Corporation (DEC) работала над новой распределенной системой баз данных RdbStar. Это привело к разработке нового теста для измерения производительности новой системы баз данных. Группа производительности RdbStar исследовала многие существующие тесты до TPC, такие как тест Wisconsin, AS3AP и Set Query Benchmark. Они также изучили реальные варианты использования баз данных на основе опроса клиентов европейского подразделения DEC. В конечном итоге они выбрали компоненты неопубликованной рабочей нагрузки Остина из Консорциума микроэлектроники и компьютеров , которая имитировала складские операции. Команда использовала эту рабочую нагрузку в качестве основы для своего собственного теста, известного как Order-Entry. [6]
К моменту публикации TPC-B в августе 1990 года уже существовали опасения, что дебет/кредит слишком прост и не моделирует типичные рабочие нагрузки. В ноябре начались новые усилия с призывом к отрасли предоставить новый эталон. IBM ответила своим RAMP-C, а DEC предложила ввод заказов. Предложение DEC было выбрано, а его основной автор, Франсуа Рааб, был выбран техническим руководителем усилий по стандартизации. [6] Эти усилия длились восемнадцать месяцев и завершились выпуском версии TPC-C 1.0 13 августа 1992 года. [7]
Пост-релиз
[ редактировать ]В течение следующих нескольких лет спецификация тестов TPC-C претерпела несколько незначительных изменений. Версия 1.1 от июня 1993 г. прояснила некоторые формулировки и потребовала определения цены тестируемой системы на стороне клиента. В версии 2.0 от октября 1993 г. были изменены различные требования к отчетности и добавлены формулировки, исключающие любые улучшения, специфичные для эталонных тестов. В версии 3.0 от февраля 1996 года добавлено отслеживание транзакций, новые поля для добавления изображений (в конечном итоге никогда не использовавшиеся) и исключение терминалов из общей стоимости системы, поскольку к этому времени стоимость серверов настолько снизилась, что стоимость терминалы стали составлять слишком большую часть общей стоимости. [7]
Тест продолжал развиваться, чтобы приспособиться к появлению новых вычислительных архитектур, таких как модель клиент-сервер , и уточнить правила, регулирующие правильное выполнение этапов тестирования и необходимую отчетность. Наиболее существенные изменения произошли в 2000 году и заключались в переводе цен на техническое обслуживание с пяти до трех лет и с пяти 8-часовых дней (5х8) на семь 24-часовых дней (7х24), сокращении продолжительности измерений с восьми до двух часов и сокращение потребности в архивном пространстве в три раза. Эти три основных изменения были выпущены в версии 5.0 26 февраля 2001 года. Незначительные изменения были внесены после уточнения различных требований, изложенных в спецификации эталонного теста. По состоянию на 2021 год [update], последняя редакция — 5.11, опубликована 11 февраля 2010 г. [8]
Первый опубликованный результат нового теста был опубликован в сентябре 1992 года при температуре 54 tpmC. [9] С тех пор рекорды TPC-C со временем увеличивались почти точно по закону Мура . Первоначальные результаты исчислялись десятками, но через год их количество достигло сотен, и к январю 1998 года рекорд составил 52 871 человек. [9] К 2010 году эта цифра достигла миллиона. В 2000-е годы количество рекордов уменьшилось, поскольку стоимость установления рекорда значительно выросла. В этот период Microsoft переключила свое внимание на новый тест TPC-E , предоставив Oracle возможность создавать огромные системы и неоднократно устанавливать рекорды, которые другие не могли себе позволить. [10]
Попытки установить рекорд после этого момента были относительно немногочисленны до появления облачных вычислений в конце 2010-х годов. Текущий рекордсмен — Ant Financial , чья OceanBase обеспечивает работу Alibaba . В августе 2019 года они установили рекорд чуть более 60 миллионов, что стало первой попыткой после результата Oracle в 8 миллионов в 2013 году. Другие поспешили отметить, что рекорд Oracle был установлен на одной рабочей станции , в то время как Ant требовалась полноценная вычислительная ферма. Чтобы положить конец таким жалобам, в мае 2020 года Ant опубликовал новый рекорд — 707 миллионов. Этот рекорд стоит и по сей день. [11]
Описание
[ редактировать ]TPC-C основан на рабочей нагрузке ввода заказов, представленной TPC компанией DEC. Более ранний тест TPC-A был сосредоточен в первую очередь на обновлениях баз данных , соответствующих операциям в упрощенной дебетовой/кредитной бухгалтерской системе, которая не соответствовала реальным моделям использования. Выборка производственных рабочих нагрузок показала, что для более адекватного представления закономерностей реального мира необходимо более сложное сочетание вставок, чередующихся с обновлениями и операциями только для чтения. Более того, база данных TPC-A не отличалась особой сложностью; Реальные системы распределяют свои данные по множеству таблиц разного размера и сложности. [12]
TPC-C использует схему базы данных , состоящую всего из девяти таблиц. Структура определяется в первую очередь таблицей Warehouse, которая содержит ряд складских записей, обозначенных W. W имеет минимальное значение 10 и должно быть увеличено, чтобы соответствовать уровню насыщения тестируемых систем, используя W в качестве коэффициента масштабирования. Заявленный показатель производительности не может превышать 12,86 x Вт. [1] На всех складах имеется один и тот же каталог товаров. Таблица «Товар» содержит 100 000 строк, а таблица «Акции» — Ш x 100 000 строк. Вторая ветвь схемы — это Районы с 10 записями для каждого Склада. У районов есть клиенты, по 3000 на каждый район. Они генерируют заказы от 5 до 15 строк заказов на заказ. Это означает, что Order-Line — это самая большая таблица, примерно с W(площади) x 3000 (Клиенты) x 10 (первоначальные заказы) x 10 (строки заказов) = W x 300 000 записей. Процесс заполнения заказа взаимодействует с записями запасов, связанными с одним или несколькими складами. [13]
Деятельность состоит из серии виртуальных терминалов W x 10, вводящих транзакции в соответствии с полуслучайной формулой; основная транзакция — New-Order, которая создает один заказ. Каждый заказ приводит к одной Платежной операции и одной Доставке. Для каждых десяти транзакций нового заказа генерируется одна транзакция «Статус заказа» и одна транзакция «Уровень запаса». «Эмулятор удаленного терминала» (RTE) запрограммирован для имитации ввода данных пользователем, задержек при наборе текста, задержек между полями и между транзакциями. RTE также отслеживает время между запросом пользователя каждой транзакции и ее завершением, называемое временем ответа . Скорость выполнения транзакций новых заказов в минуту отображается как значение tpmC (транзакций в минуту C) и представляет собой основной показатель производительности эталонного теста. [12]
Предварительные результаты показали, что по сравнению с TPC-A рабочая нагрузка TPC-C была примерно в десять раз сложнее. Только один тип транзакции из пяти, 44% от общего числа, включается в результат TPC-C по транзакциям в минуту, тогда как TPC-A измеряется в транзакциях в секунду и включает каждую транзакцию. Это означает, что эти два числа невозможно напрямую сравнить без некоторого преобразования: умножения на 60 для учета секунд и минут и на 2,3 для учета подмножества включенных транзакций. Если рассматривать одну машину, IBM RS/6000 Model 570, TPC-A возвращает значение 129 tpsA, тогда как TPC-C возвращает 365,45 tpmC. Умножив tpmC на 2,3, а затем разделив на 60 для преобразования в tpsA, результат составит 13,5, разница в производительности примерно в 9,5 раз. [14]
Для подачи результата TPC-C также необходимо раскрыть подробную информацию о ценах на протестированную конфигурацию, включая обслуживание оборудования и программного обеспечения с круглосуточным обслуживанием в течение трехлетнего периода. Оплачиваемая система должна включать не только саму систему, но и достаточно места для хранения данных, сгенерированных при работе системы с указанной скоростью tpmC в течение 60 дней. Теоретически, tpmC, равный 1, будет генерировать 252 КБ записей в истории, 133 КБ в заказах и 1325 КБ в строке заказов. [15] Общая стоимость системы объединяется с измеренным значением tpmC для получения показателя цена/производительность. В то время как некоторые опубликованные результаты нацелены на получение максимально возможного значения tpmC, многие другие опубликованные результаты нацелены на первое место в конкурентоспособной категории «цена/производительность», иногда с относительно низким значением tpmC. [14]
Тестирование обычно выполняется поставщиком одного из основных компонентов (например, системы баз данных, внутреннего сервера и т. д.), который должен предоставить отчет о раскрытии информации с полной информацией о конфигурации системы, ее настройке, условиях тестирования. и все результаты собраны. [16] Вся реализация эталонного теста, все этапы тестирования, измеренные результаты, цены на систему и отчет о раскрытии информации должны быть проверены независимым аудитором, сертифицированным TPC. [17]
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Перейти обратно: а б ТПК 2010 , с. 64.
- ^ Серлин 1991 , стр. 20–21.
- ^ Серлин 1991 , с. 20.
- ^ Серлин 1991 , стр. 21–22.
- ^ Серлин 1991 , стр. 21–30.
- ^ Перейти обратно: а б Чен, Рааб и Кац , с. 3.1.
- ^ Перейти обратно: а б Рааб 1998 , стр. 3.3.2.
- ^ ТПК 2010 , с. 3.
- ^ Перейти обратно: а б Шэнли, 1998 год .
- ^ Намбиар и Поесс 2011 , с. 117.
- ^ В 2020 году .
- ^ Перейти обратно: а б Рааб, Колер и Шах .
- ^ Веверс и др. 2015 , с. 7.
- ^ Перейти обратно: а б Рааб 1998 , стр. 3.2.
- ^ Рааб 1998 , стр. 3.1.
- ^ TPC 2010 , стр. 93–104.
- ^ TPC 2010 , стр. 105–109.
Библиография
[ редактировать ]- Серлин, Омри (1991). «История дебиткредита и TPC». Справочник по эталонным тестам для систем баз данных и обработки транзакций . Издательство М. Кауфманн. стр. 19–38. CiteSeerX 10.1.1.90.6123 . ISBN 9781558601598 .
- Чен, Янпей; Рааб, Франсуа; Кац, Рэнди. От TPC-C к тестам больших данных: модель функциональной рабочей нагрузки . Семинар по тестированию больших данных. стр. 28–43. дои : 10.1007/978-3-642-53974-9_4 .
- Намбияр, Рагунатх; Поэсс, Майкель (2011). «Эффективность транзакций против закона Мура: анализ тенденций». Конспекты лекций по информатике . Конспекты лекций по информатике. Том. 6417. Шпрингер-Верлаг. стр. 110–120. Бибкод : 2011LNCS.6417..110N . дои : 10.1007/978-3-642-18206-8_9 . ISBN 978-3-642-18205-1 .
- TPC Benchmark C, версия 5.11 (PDF) (Технический отчет). Совет по производительности обработки транзакций. Февраль 2010.
- Шенли, Ким (февраль 1998 г.). «Истоки ТПК и первые 10 лет» . Совет по производительности обработки транзакций .
- Рааб, Франсуа; Колер, Уолт; Шах, Амитабх. «Обзор теста TPC-C, тест ввода заказов» . Совет по производительности обработки транзакций .
- Рааб, Франсуа (1998). Грей, Джим (ред.). Справочник по эталонным тестам (PDF) .
- Морган, Тимоти Прикетт (29 сентября 2009 г.). «TPC дает Oracle пощечину по поводу заявлений о тестах производительности» . Регистр .
- «ТПК-С» . Тараканьи лаборатории .
- Веверс, Лесли; Хофстра, Маттейс; Тамменс, Менно; Ван Кеулен, Морис (январь 2015 г.). Эталон онлайн-преобразований неблокирующих схем . 4-я Международная конференция по технологиям и приложениям управления данными. дои : 10.5220/0005500202880298 .
- «OceanBase побивает рекорд TPC-C: диалог с финансовыми экспертами Ant» . Облако Алибаба . 5 июня 2020 г.