SlideShare a Scribd company logo
DBMS Benchmarks
in a Nutshell
Андрей Николаенко
IBS
к о н ц е н т р и р о в а н н о е о б о з р е н и е с ф е р ы э т а л о н н о г о т е с т и р о в а н и я С У Б Д
Гонки TPC-C
296 результатов
Simfoware, Oracle DB 7–8, DB2/400 и UDB, Informix, MS SQL Server, Sybase ASE …
TPC-C, апрель 2017
SQL
Anywhere
Goldilocks
РАННЯЯ ИСТОРИЯ
TP1
Середина
1970-х,
бенчмарк IBM
обработка
банковских
транзакций
Idefix: 100 tps
(1973, «банк с
1 тыс. отделений
и
10 тыс.
операционистов»)
Пакетный режим без сети
без времени на
реакцию
оператора
Начало 1980-х:
фантастические
победные
реляции на
10 ktps
Рынок вышел на
миллиардные
обороты
… с самым
быстрорастущим
сегментом с
фокусом на OLTP
…но конечные
заказчики не
получали
и 1 ktps …
Дэвид Девитт: Висконсинский бенчмарк
Альтернативный,
более строго
детерминированный
бенчмарк
Нацелен на борьбу с
«бенчмарковыми
войнами», но разжёг
их ещё сильнее!
Из-за низких
результатов Oracle DB
появилась «оговорка
Девитта»
(DeWitt clause)
Лицензия на СУБД
запрещает
публикацию каких-
либо тестов
производительности
СУБД
Джим Грей:
DebitCredit
В пику висконсинскому бенчмарку, на базе предметной
области из TP1
Требуется публикация суммарной стоимости
системы, включая оборудование, лицензии, 5
лет сопровождения
Тест специфицирован на языке
функциональных требований, без требований к
коду или фрагментов кода
Введены правила масштабирования теста по
количеству пользователей и размерам таблиц
с пропорциональным ростом
Введено ограничение на время отклика:
95 % транзакций должно завершиться
за 1 сек.
Изображение: ©Dell, 2013
Главное:
ограничение на
время отклика
ЭПОХА СОВЕТА
TPC.org
Бенчмарковые войны продолжались: как проверить результат?
Нужна некоммерческая организация
1988: Transaction Processing Performance Council –
Совет по оценке производительности транзакционной обработки
Основатель – Омри Серлин и 8 согласных вендоров
Actian Cisco Cloudera Dell DataCore Fujitsu HPE Hitachi Huawei IBM
Inspur Intel Lenovo Microsoft Oracle Pivotal Red Hat SAP Teradata VMWare
Члены на 2017 год:
TPC-A и TPC-B: тест
READ 100 bytes from TTY (AID, TID, BID, DELTA)
BEGIN TRANSACTION
UPDATE ACCOUNT WHERE ACCOUNT_ID = AID:
READ ACCOUNT_BALANCE FROM ACCOUNT
SET ACCOUNT_BALANCE = ACCOUNT_BALANCE + DELTA
WRITE ACCOUNT_BALANCE TO ACCOUNT
WRITE TO HISTORY:
AID, TID, BID, DELTA, TIME_STAMP
UPDATE TELLER WHERE TELLER_ID = TID:
SET TELLER_BALANCE = TELLER_BALANCE + DELTA
WRITE TELLER_BALANCE TO TELLER
UPDATE BRANCH WHERE BRANCH_ID = BID:
SET BRANCH_BALANCE = BRANCH_BALANCE + DELTA
WRITE BRANCH_BALANCE TO BRANCH
COMMIT TRANSACTION
WRITE 200 bytes to TTY (AID, TID, BID, DELTA)
На основе TP1 – обработка розничнобанковских транзакций
TPC-A и TPC-B: модель
BRANCH
B
ACCOUNT
B*100K
100K
HISTORY
B*2.6M
TELLER
B*1010
Цикл в 10 с у
каждого
терминала
1 транзакция в
секунду на
каждое
отделение
Отклик от 90%
транзакций –
менее 2 сек
Считается:
средний
показатель
транзакций
в секунду
за 15 мин
TPC-A и TPC-B: различия
TPC-A
Терминалы
Время на
реакцию
пользователя
TPC-B
Серверный тест
Сокращённая
история
(30 дней)
TPC-A и TPC-B: критика
1995: признаны несостоятельными
Последний результат (DEC, 1994)
3700 tpsA 4800 $/tpsA
Первый результат (HP, 1990)
38.2 tpsA 29200 $/tpsA
Наследие TP1
Слишком простые, чтобы
исключить подстройки
Невероятные разбросы
результатов
TPC-C: усложнение
Пороги отклика для 90% транзакций
Менее 5 сек для интерактивных
операций
Менее 20 сек для пакетных процессов
Больше вариаций
9 таблиц Вставки, обновления,
удаления, отмены операций
Доступ по первичными и
вторичным ключам
5 типов транзакций
NEW-ORDER
• новая заявка от
клиента
PAYMENT
• факт платежа
• обновление
баланса
клиента
DELIVERY
• заявка на
доставку
• (пакетный
процесс)
ORDER-STATUS
• проверка статуса
последней заявки
от клиента
STOCK-LEVEL
• проверка уровня
запасов на
складе
45% 43% 4% 4% 4%
Модель данных TPC-C
WAREHOUSE
W
DISTRICT
W*10
10
CUSTOMER
W*30K
3K
HISTORY
W*30K+
1+
ITEM
100K (fix)
STOCK
W*100K100K W
ORDER
W*30K+
1+
ORDER-LINE
W*300K+
10–15
NEW-ORDER
W*5K0–1
TPC-C: масштабирование
Каждый новый склад →
+10 участков,
+100 единиц хранения,
+300 тыс. клиентов
Максимум – 1,2 tpmC на терминал
10 терминалов на склад
Квант масштабирования – склад ( )W
TPC-C: кластерные и некластерные
Кластерные
Несколько
узлов
Без разделяемых
ресурсов
(федеративные)
Сегментирование
С общим
ресурсом
хранения (RAC)
Некластерные Один узел
TPC-C: метрики
tpmC
Транзакций в
минуту
tpmC / $
Стоимость
транзакции
Полная стоимость
оборудования
Лицензии и
поддержка на 3
года
W / ktpmC
Энергозатраты на
[кило] транзакцию
Интерпретация TPC-C
По Алану Паркеру (Alan Parker. Tuning databases on Solaris platform. Prentice-Hall, 2002)
• …не только создание заявокtpmC × 2
• …если нет монитора транзакцийtpmC / 2
• …если на стороне оператора клиент типа Oracle FormstpmC / 3
• …если используются легковесные экранные формы
(curses и т. п.)tpmC × 2 / 3
• …если в приложении не было тонкой настройки SQLtpmC / 2
• …если параллельно нагрузке формируются отчёты или
выполняются пакетные заданияtpmC / 2
Просто ли обмануть TPC-C?
mount -t tmpfs -o size=2048g tmpfs /u01/tablespaces
CREATE UNLOGGED TABLE …
_ALLOW_RESETLOGS_CORRUPTION = TRUE
_IN_MEMORY_UNDO = TRUE
_DB_BLOCK_HASH_LATCHES = 32768
█
Ответ от Совета
Те с т ы н а в с е а с п е к т ы A C I D з а к р е п л е н ы в с п е ц и ф и к а ц и и в
в е с ь м а ж ё с т к о й т р а к т о в к е
Защита от перезагрузки одного узла
Зеркальная синхронная
фиксация на отдельном узле
Журналы упреждающей записи и
восстановление
Работоспособность при
перезагрузке
Защита «одиночного сбоя носителя»
Зеркальная синхронная фиксация на раздельно
запитанные носители
Журналы упреждающей записи на независимом
носителе и восстановление
Фиксация транзакции = записано на энергонезависимый носитель
TPC-C: критика 1990-х
Даже оптовики работали по-другому!
Заявка: несколько
неуспешных поисков с
подстановочными символами
После каждой заявки
печатается бумажный
отчёт (иногда трижды)
«Обновление балансов» на каждой
онлайн-операции при больших
нагрузках невозможно → вставка +
пакетный досчёт остатков
Простая логика
Нет декларативных ограничений целостности Нет триггерной логики
Нетипичные нагрузки
А как же отчётность?
А как же системы поддержки принятия
решений?
TPC: отменённое
TPC-D 1995–1999
Первая
попытка
OLAP-теста
TPC-R 2001–2005 Отчётность
TPC-W 2001–2005
Онлайн-
веб-
коммерция
TPC-H
1999 год:
OLAP vs OLTP
“Ad-hoc
decision
support”
Вместо
признанного
неудачным
TPC-D
«Весовые
категории»
100 ГБ
300 ГБ
1 ТБ
3 ТБ
10 ТБ
30 ТБ
100 ТБ
Параллельная
нагрузка
22 вида
сложных
запросов
2 типа
обновления
хранилища
1 SF ~ 1 GB
Ограничения
целостности
Не звезда
TPC-H:
модель
TPC-H Q1
SELECT
l_returnflag, l_linestatus,
sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice*(1-l_discount)) as sum_disc_price,
sum(l_extendedprice*(1-l_discount)*(1+l_tax)) as sum_charge,
avg(l_quantity) as avg_qty,
avg(l_extendedprice) as avg_price,
avg(l_discount) as avg_disc,
count(*) as count_order
FROM lineitem
WHERE l_shipdate <= date '1998-12-01' - interval Δ day (3)
GROUP BY l_returnflag, l_linestatus
ORDER BY l_returnflag, l_linestatus Δ = random [60…120]
“ F u n c t i o n a l Q u e r y D e f i n i t i o n ”
TPC-H: результаты-2017
Напрямую трудно применимо
к нереляционным СУБД
Есть
варианты
трансляции
для MOLAP
(MDX)
Были сообщения
о применении
для
Apache Hive
Exasol
MS SQL
Server
Oracle
Database
Actian
Vector
От 1 до 10 результатов в
каждой «весовой категории»
TPC-E: «Практичный OLTP»
Тоже OLTP, но более «гибридный»
Включённые ограничения целостности
Без мониторов транзакций
Больше чтений
Больше видов нагрузок
TPC-E: сложный поток операций
TPC-E: модель данных
Изображение: ©Transaction Processing Council, 2009
78 результатов
Все – некластерные, MS SQL Server на Windows Server x64
11 ktpse,
$144/tpse
(1,6 MIO)
Изображение: ©Lenovo, © TPC, 2015
TPC-ABCEH
TPC-A/B TPC-C TPC-E TPC-H
Предметная
область
Розничный банк Оптовый склад Брокерский дом Дискретный сбыт
Таблиц 4 9 33 8
Чтение-запись 100% 92% 23,10% 8%
Чтение 0% 8% 76,90% 92%
Ограничения
целостности
0 0 22 17
Генерация
данных
Случайная Случайная
Псевдо-
действительная
Случайная
Метрика tpsA tpmC tpsE QphH@Size
Новые TPC-x и TPCx-X
TPC-DI
ETL-нагрузки
TPC_DI_RPS
0 результатов
TPC-DS
Поддержка
принятия
решений,
«включая большие
данные»
(«включая
Hadoop/Spark»)
QphDS@Size
0 результатов
TPCx-BB
Экспресс-
бенчмарк для
аналитических
больших данных
на базе BigBench
BBpm@Size
0 результатов
TPCx-HS
Экспресс-
бенчмарк для
HDFS-
совместимых
систем по типу
TeraSort
HSph@Size
От 1 до 4
результатов в
разных «весовых
категориях»
Публикация?
Публикация на TPC.org
Академическая или исследовательская публикация, не
применимая с маркетинговыми целями
С однозначным утверждением, что полученный
результат не является сравнимым с результатами
TPC.org
С разрешения TPC.org
Запрещено публиковать результаты TPC-тестов,
полученные по средствами TPC, кроме следующих случаев:
«Оговорка Девитта» в 2017 году?
MSFT
EULA
• “You may not disclose the results of any benchmark
test … without Microsoft’s prior written approval”
OTN
Lic.
• “You may not disclose results of any Program
benchmark tests without Oracle’s prior consent”
IBM
IPLA
• “Licensee may disclose the results of any benchmark
test of the Program or its subcomponents to any third
party provided that Licensee, if … A) … B) … C)…”
НОВАЯ ВОЛ НА
Новым нагрузкам – новые бенчмарки
2010-е
2000-е
1990-е
1980-е
OLTP
ROLAP ROLAP
Резидентный
OLAP
TCP-DS
ROLAP TCP-H
Графовые
запросы
LinkBench
MapReduce HiBench
OLTP
OLTP[E] OLTP[E] TPC-E
OLTP
Атомарный
доступ
YCSB
TPCx-HS
TPCx-BB
Основные бенчмарки «новой волны»
Terrasort Benchmark
BigBench
Intel HiBench
Yahoo! Cloud Services
Benchmark
Linkbench
• Воплощён в TPCx-HS
• Воплощён в TPCx-BB
• Серия тестов для
Hadoop
• Набор «эталонных
обстрелов» для
NoSQL-систем
• Графообразная нагрузка
на РСУБД
Linkbench
Нагрузка Facebook
• Ранние графовые тесты были
ориентированы на граф-анализ
• Реальная нагрузка крупной
интернет-компании
• Транзакционность (MVCC)
Методологично
• Статистические законы при
генерации
• Показатели – средние времена
отклика для каждой из нагрузок
• Средний отклик в 99-м процентиле
• Документов в секунду – на запись
• Запросов в секунду – на чтение
MySQL
(InnoDB vs
TokuDB)
HBase
MongoDB
/ TokuMX
OrientDB
В о п р о с F a c e b o o k
IntelHibenchдляHadoop
Изображение:Intel,2013
Yahoo! Cloud services benchmark
Новый инструмент «бенчмаркового маркетинга»
Смело используется исследователями
(V. Abramova et al. Experimental Evaluation of NoSQL Databases // IJDMS Vol.6, №3, 2014)
Cassandra HBase
Elastic
search
MongoDB
Oracle
NoSQL
OrientDB Redis Scalaris Tarantool Voldemort
Обстрел с одной нагрузочной станции
Вместо транзакции – атомарная операция
(возможно, чтение нескольких записей)
YCSB: нагрузки
Пример «бенчмарктенинга» в новом классе
Возможен?
Корректен?
Репрезентативен?
Сравним?
Повторяем?
ЗАМЕР
«КАРМАННЫМИ
СРЕДСТВАМИ»
pgbench
TPC-B
Стандартная
часть
PostgreSQL
Запуск одной
строкой
Фактический стандарт для нужд
PostgreSQL
Что лучше – XFS или
ext4?
Таблицы на SSD,
индексы на HDD, или
наоборот?
Размер блока – 4K или
8K?
Sysbench
Широко используется для внутренних сравнений MySQL,
MariaDB и их форков
Своеобразные тесты, не похожие на какие-либо
стандартные бенчмарки
Утилита MySQL (автор – Алексей Копытов)
fileio cpu memory threads mutex oltp
TPCE-MySQL
TPC-E-нагрузчик для MySQL от Percona
HammerDB
Свободная Java-GUI-программа,
запускающая TPC-C (?) и TPC-H (?) с поддержкой множества СУБД:
Oracle
Database
Microsoft
SQL Server
IBM DB2 TimesTen MySQL
MariaDB
Postgre
SQL
Postgres
Plus AS
Greenplum
DB
Redis
Amazon
Aurora
(MySQL)
Amazon
Redshift
(ParAccel)
Trafodion
SQL on
Hadoop
HammerDB:
TPC-Cв«одинклик»?
HammerDB: TPC, но не совсем…
При этом нет востребованных в современных бенчмарков
TPC-E TPC-DS
TPC-H
Единственная нагрузочная станция
TPC-C
Не эмулируется нагрузка всего
окружения
Нагрузочная станция – в роли
единственного монитора транзакций
HammerDB: популярность
Используется
вендорами
оборудования
и платформ
Но аккуратно,
в формате
«блог нашего
сотрудника»
Хаб с
результатами
тестов
Раздел
«Performance
Data»
Swingbench
TPC-C-подобная нагрузка на Oracle Database и Timesten
+ Своеобразный OLTP- тест с большой PL/SQL-логикой
Специфичные для Oracle DB средства мониторинга и анализа (AWR, etc.)
Поддержка координатора
GUI и командная строка
Сравнимость только внутри инструмента
Нерепрезентативные результаты в условиях RAC
Quest Benchmark factory for databases
Oracle
Database
MySQL
MS SQL
Server
SQLite
SQL
Anywhere
Коммерческий инструмент
TPC-C ?
TPC-D
TPC-E
TPC-H
ASP3AP
Поддерживает архитектуру
с несколькими нагрузочными станциями
(Windows)
osdldbt.sourceforge.net
• TPC-WDBT-1
• TPC-CDBT-2
• TPC-HDBT-3
• TPC-AppDBT-4
• TPC-EDBT-5
While the inspiration for these workloads
are the TPC-<x…>, workloads are
entirely different and results obtained
from them should not and can not be
compared to TPC results.
The use of any supplied results of these
tests for commercial purposes is
expressly prohibited.
MySQL PostgreSQL
…расширяемо
oltpbench
github.com/oltpbenchmark/oltpbench
Java-средство для командной строки
Для любой РСУБД с поддержкой JDBC
Особая версия для Hstore (VoltDB )
TPC-C Wikipedia
Synthetic
Resource
Stresser
Twitter Epinions.com TATP
AuctionMark SEATS YCSB
JPAB
(Hibernate)
CH-
benCHmark
Voter
SIBench
(Snapshot
Isolation)
SmallBank LinkBench
TPC tools
Средства от
Совета…
Исходные
тексты на
Си
Н е т д л я T P C - C :
только «сэмпл» в
спецификации
Вся
соединяемость
и прочая
работа –
своими руками
TPC-* By Example
По «отчётам о полном раскрытии информации» на TPC.org
Benchware
«Швейцарский нож» от Манфреда Дрозда:
Peakmarks Benchware
OraCPU
PL/SQL op
• [ops]
PL/SQL
alg
• [ops]
OraSRV
In-memory
SQL
• [ms]
• [dbps]
• [tps]
• [rps]
OraSTO
SeqIO
• [GBps]
• [iops]
RandIO
• [GBps]
• [iops]
OraOLTP
OLTP
Select
• [rps]
• [tps]
OLTP
Update
• [rps]
• [tps]
OraLoad
TransLoad
• [rps]
• [tps]
BulkLoad
• [rps]
• [tps]
OraAgg
OraAgg &
Rep
• [rps]
• [tps]
Только Oracle Database, только PL/SQL и SYS.V_$%
Самый
практичный
метод?
Прогон реальной нагрузки и
бенчмарки приложений
Воспроизведение нагрузки: точный опыт
Системы с полным API-доступом
(обычно JSON via HTTP)
Журналирование и
«самозахват»
Повтор с
интервалами
Разделение типов
нагрузки
(категорий
пользователей)
Масштабирование по
данным?
Средства эмуляции нагрузки
JMeter LoadRunner …
Средства на стороне СУБД
Oracle Real Application Testing
(Database Replay)
MS SQL Server Distributed Replay
Тонкости «зашнуровки»
Как
размножить
базу данных?
«Вегетативное
размножение»
Повторные со
случайным
сдвигом?
Наложение
реальных
данных
(из открытых
данных)
Влияние на
аналитику
Предсказуемые
выборки
Пониженная
селективность
Влияние на
OLTP
Ключи,
индексы…
Тиражируемые приложения
1C: типовая конфигурация
«Стандартный нагрузочный тест»
Показатель – Apdex (число одновременно работающих пользователей
при заданном максимальном времени отклика)
Microsoft Dynamics AX Application Benchmark Toolkit
Oracle E-Business Suite Standard Benchamrks
Order-to-Cash OLTP Payroll …
SAPS [SAP Application Performance Standard] на модуле SD
RPE2
SAP SD
2-Tier
TPC-C
TPC-HSPEC
jbb2005
SPEC
CPU2006
Суперкомпозитный показатель от Gartner (Ideas)
RPE2-ERP
RPE2-Java
RPE2-OLTP
RPE2-Compute
Intensive
Атомизация показателей
Машины баз данных?
Предконфигурированные
аппаратно-программные
комплексы для СУБД
Кто, как не они должны
быть «проверены и
отмерены» для
практических целей?
Teradata
Последние публикации Teradata c TPC-H:
Лицензируется по
«внутреннему Qph» –
tPerf [Traditional Performance]
Exadata
Не публикуются tps, Qph…
«Паспортные показатели» (X6-8)
෍ 𝑉 × IOPS ≈ Const
IBM Pure Data for Operational analytics
Не публикуются Qph…
«Паспортные данные» – про ввод-вывод
“SQL IOPS”
Получение SQL IOPS для других СУБД?
Статистические представления (…IO_STATS…)
IOPS со стороны Oracle Database
Orion(Oracle IO Numbers)
SLOB(рекомендуют EMC,
Flashgrid)
Benchware
(?)
DBMS_RESOURCE_MANAGER
.CALIBRATE_IO
Атомизация агрегатных показателей
tpmC
QpmH
SQL
IOPS
SQL
bandwidth
Атомизация показателей: Pro
Независимость от
заданных моделей и схем
Признаются
производителями машин
баз данных
Доступны для «карманной
инструментовки»
Показательны для
широкого класса СУБД и
СУБД-подобных систем
• Показательны не только
для 3NF, снежинок, звёзд
• Включены в «паспортные
показатели»
• Могут быть запущены со
стороны БД
• Могут быть интересны
для NoSQL
Атомизация показателей: …et contra
Вопросы к
методологии
Результаты
CALIBRATE_IO и
Benchware –
разные
Неочевидный
прикладной
смысл результата
Для разных СУБД
одно и то же число
операций – разное
количество
транзакций
Нет готового
инструмента для
большинства
известных СУБД
Есть для Oracle
DB, IBM DB2, MS
SQL
Дискуссионные вопросы
• Смогут ли стать столь же популярными, как TPC-C и TPC-H в своё время?
• Проблема мегаконфигураций
TPC-E и TPC-DS
• TPC-B повторить просто
• Остальные – сложно или с неполным соответствием
«Карманный» инструментарий
• Признание, адаптация и стандартизация, интерпретация
• Возможны ли другие показатели подобного рода?
SQL IOPS & Bandwidth
• Атомарные (YCSB-тип)
• Графовые (LinkBench-тип)
Стандартизация и универсализация тестов для новых нагрузок
• Новые типы приложений – порталы, системы групповой работы
• Новые архитектуры слоя БД – сегментация, резидентные СУБД, резидентные гриды
Перспективы эталонных тестов на основе реальной нагрузки нового поколения
Спасибо за внимание!
mailto:anikolaenko@acm.org
mailto:anikolaenko@ibs.ru
Материал доступен по лицензии CC-SA 3.0, некоторые использованные изображения и логотипы могут принадлежать другим правообладателям

More Related Content

What's hot (20)

PDF
Опыт разработки, отладки и внедрения системы горячего резервирования торговой...
Ontico
 
PDF
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Alexey Paznikov
 
PDF
Multimaster2
Stas Kelvich
 
PDF
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
it-people
 
PDF
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Ontico
 
PPTX
High performance computing принципы проектирования сети
MUK Extreme
 
PPTX
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Ontico
 
PDF
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Ontico
 
PDF
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Mikhail Kurnosov
 
PDF
CUDA-Aware MPI
Eugene Kolesnikov
 
PDF
Chronicle Map
Roman Leventov
 
PPTX
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
Ontico
 
PDF
Операционные системы
yaevents
 
PDF
Семинар 8. Параллельное программирование на MPI (часть 1)
Mikhail Kurnosov
 
PDF
Лекция 9. Программирование GPU
Mikhail Kurnosov
 
PPTX
Expert Java Day: Java concurrency
Pavel Titkov
 
PDF
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
PDF
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Ontico
 
PPT
Секреты сборки мусора в Java (Алексей Рагозин)
Ontico
 
PDF
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Ontico
 
Опыт разработки, отладки и внедрения системы горячего резервирования торговой...
Ontico
 
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Alexey Paznikov
 
Multimaster2
Stas Kelvich
 
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
it-people
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Ontico
 
High performance computing принципы проектирования сети
MUK Extreme
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Ontico
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Ontico
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Mikhail Kurnosov
 
CUDA-Aware MPI
Eugene Kolesnikov
 
Chronicle Map
Roman Leventov
 
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
Ontico
 
Операционные системы
yaevents
 
Семинар 8. Параллельное программирование на MPI (часть 1)
Mikhail Kurnosov
 
Лекция 9. Программирование GPU
Mikhail Kurnosov
 
Expert Java Day: Java concurrency
Pavel Titkov
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Ontico
 
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Ontico
 
Секреты сборки мусора в Java (Алексей Рагозин)
Ontico
 
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Ontico
 

Similar to Андрей Николаенко, IBS. DBMS Benchmarks in a Nutshell: концентрированное обозрение сферы эталонного тестирования СУБД (20)

PDF
Сергей Мелехов, Менеджер по развитию бизнеса вычислительных систем Oracle Вос...
Банковское обозрение
 
PDF
Новости и анонсы Oracle Open World 2014
Andrey Akulov
 
PDF
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
Mail.ru Group
 
PPT
HighLoad++ 2009 In-Memory Data Grids
Alexey Kharlamov
 
PDF
SQL+NoSQL: On the Way to Converged Data Management Platforms
Andrei Nikolaenko
 
PDF
High Load 2009 Imdg Presentation
HighLoad2009
 
PDF
Новости и анонсы конференции Oracle Open World 2013
Andrey Akulov
 
PDF
Check point держи марку! Серия №1
Компания УЦСБ
 
PDF
Отказоустойчивые решения SQL
Andrey Korshikov
 
PPT
Sql Server Data Services
Media Gorod
 
PDF
Модернизация хранилища данных для использования передовой аналитики
Yuri Yashkin
 
PPTX
Проектирование приложений в IBM Cognos ТМ1
Yuri Kudryavcev
 
PDF
Short Infrastructure Overview ru hpe Vertica
Andrey Karpov
 
PPTX
Microsoft Master Data Services - Master Data Management Tool
Максим Остархов
 
PPTX
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
PDF
IBS at IBM Fast Data (Moscow, 2014)
Andrei Nikolaenko
 
PPT
Oracle Timesten
Ontico
 
PDF
Иван Тимофев, HP. Архивация баз данных и миграция устаревших приложений cиспо...
IBS
 
Сергей Мелехов, Менеджер по развитию бизнеса вычислительных систем Oracle Вос...
Банковское обозрение
 
Новости и анонсы Oracle Open World 2014
Andrey Akulov
 
Андрей Кондрашов, Банк Москвы. «АБС в крупном Банке. Тестирование PostgreSQL...
Mail.ru Group
 
HighLoad++ 2009 In-Memory Data Grids
Alexey Kharlamov
 
SQL+NoSQL: On the Way to Converged Data Management Platforms
Andrei Nikolaenko
 
High Load 2009 Imdg Presentation
HighLoad2009
 
Новости и анонсы конференции Oracle Open World 2013
Andrey Akulov
 
Check point держи марку! Серия №1
Компания УЦСБ
 
Отказоустойчивые решения SQL
Andrey Korshikov
 
Sql Server Data Services
Media Gorod
 
Модернизация хранилища данных для использования передовой аналитики
Yuri Yashkin
 
Проектирование приложений в IBM Cognos ТМ1
Yuri Kudryavcev
 
Short Infrastructure Overview ru hpe Vertica
Andrey Karpov
 
Microsoft Master Data Services - Master Data Management Tool
Максим Остархов
 
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
IBS at IBM Fast Data (Moscow, 2014)
Andrei Nikolaenko
 
Oracle Timesten
Ontico
 
Иван Тимофев, HP. Архивация баз данных и миграция устаревших приложений cиспо...
IBS
 
Ad

More from IBS (20)

PDF
Андрей Николаенко, IBS. Инструменты больших данных: от конкуренции – к интегр...
IBS
 
PDF
Кейс: Внедрение системы управления HR-данными
IBS
 
PDF
Создавайте хорошие таблицы
IBS
 
PDF
Примеры использования HR-аналитики
IBS
 
PDF
Как запустить аналитику управления персоналом
IBS
 
PDF
Антон Боганов, IBS. Контроль и управление производительностью ИТ-инфраструкту...
IBS
 
PPTX
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
IBS
 
PDF
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
PDF
Д.Романченко, IBS. Аутсорсинг информационной безопасности: взгляд интегратора
IBS
 
PDF
Конкурентоспособность российcких ИТ-решений в условиях «новой нормальности»
IBS
 
PDF
Андрей Николаенко, IBS. Гиперконвергентная инфраструктура: миграция, технико-...
IBS
 
PDF
Андрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштаб
IBS
 
PDF
В.Дубинкин (IBS). Триада SDN - от концепции к практической реализации
IBS
 
PDF
П.Сычёв, И.Рогачев (IBS). Комплексная система управления жизненным циклом объ...
IBS
 
PDF
Цифровые бизнес-модели, меняющие мир и IT-индустрию // Сергей Мацоцкий на Cne...
IBS
 
PDF
Inspur Smartrack – инновационное решение для горизонтального масштабирования ...
IBS
 
PDF
Как за счет СУБД сохранить инвестиции в условиях снижения бюджетов // Руслан ...
IBS
 
PDF
Информационная безопасность сегодня // Фёдор Дбар ("Код безопасности") на Int...
IBS
 
PDF
Виртуализация инфраструктуры ЦОД российской разработки // Владимир Порохов (O...
IBS
 
PDF
Современные флэш-технологии – от концепции к преимуществам использования // А...
IBS
 
Андрей Николаенко, IBS. Инструменты больших данных: от конкуренции – к интегр...
IBS
 
Кейс: Внедрение системы управления HR-данными
IBS
 
Создавайте хорошие таблицы
IBS
 
Примеры использования HR-аналитики
IBS
 
Как запустить аналитику управления персоналом
IBS
 
Антон Боганов, IBS. Контроль и управление производительностью ИТ-инфраструкту...
IBS
 
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
IBS
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
Д.Романченко, IBS. Аутсорсинг информационной безопасности: взгляд интегратора
IBS
 
Конкурентоспособность российcких ИТ-решений в условиях «новой нормальности»
IBS
 
Андрей Николаенко, IBS. Гиперконвергентная инфраструктура: миграция, технико-...
IBS
 
Андрей Николаенко, IBS. Гиперконвергентность - мягкое введение в веб-масштаб
IBS
 
В.Дубинкин (IBS). Триада SDN - от концепции к практической реализации
IBS
 
П.Сычёв, И.Рогачев (IBS). Комплексная система управления жизненным циклом объ...
IBS
 
Цифровые бизнес-модели, меняющие мир и IT-индустрию // Сергей Мацоцкий на Cne...
IBS
 
Inspur Smartrack – инновационное решение для горизонтального масштабирования ...
IBS
 
Как за счет СУБД сохранить инвестиции в условиях снижения бюджетов // Руслан ...
IBS
 
Информационная безопасность сегодня // Фёдор Дбар ("Код безопасности") на Int...
IBS
 
Виртуализация инфраструктуры ЦОД российской разработки // Владимир Порохов (O...
IBS
 
Современные флэш-технологии – от концепции к преимуществам использования // А...
IBS
 
Ad

Андрей Николаенко, IBS. DBMS Benchmarks in a Nutshell: концентрированное обозрение сферы эталонного тестирования СУБД

  • 1. DBMS Benchmarks in a Nutshell Андрей Николаенко IBS к о н ц е н т р и р о в а н н о е о б о з р е н и е с ф е р ы э т а л о н н о г о т е с т и р о в а н и я С У Б Д
  • 2. Гонки TPC-C 296 результатов Simfoware, Oracle DB 7–8, DB2/400 и UDB, Informix, MS SQL Server, Sybase ASE …
  • 5. TP1 Середина 1970-х, бенчмарк IBM обработка банковских транзакций Idefix: 100 tps (1973, «банк с 1 тыс. отделений и 10 тыс. операционистов») Пакетный режим без сети без времени на реакцию оператора Начало 1980-х: фантастические победные реляции на 10 ktps Рынок вышел на миллиардные обороты … с самым быстрорастущим сегментом с фокусом на OLTP …но конечные заказчики не получали и 1 ktps …
  • 6. Дэвид Девитт: Висконсинский бенчмарк Альтернативный, более строго детерминированный бенчмарк Нацелен на борьбу с «бенчмарковыми войнами», но разжёг их ещё сильнее! Из-за низких результатов Oracle DB появилась «оговорка Девитта» (DeWitt clause) Лицензия на СУБД запрещает публикацию каких- либо тестов производительности СУБД
  • 7. Джим Грей: DebitCredit В пику висконсинскому бенчмарку, на базе предметной области из TP1 Требуется публикация суммарной стоимости системы, включая оборудование, лицензии, 5 лет сопровождения Тест специфицирован на языке функциональных требований, без требований к коду или фрагментов кода Введены правила масштабирования теста по количеству пользователей и размерам таблиц с пропорциональным ростом Введено ограничение на время отклика: 95 % транзакций должно завершиться за 1 сек.
  • 10. TPC.org Бенчмарковые войны продолжались: как проверить результат? Нужна некоммерческая организация 1988: Transaction Processing Performance Council – Совет по оценке производительности транзакционной обработки Основатель – Омри Серлин и 8 согласных вендоров Actian Cisco Cloudera Dell DataCore Fujitsu HPE Hitachi Huawei IBM Inspur Intel Lenovo Microsoft Oracle Pivotal Red Hat SAP Teradata VMWare Члены на 2017 год:
  • 11. TPC-A и TPC-B: тест READ 100 bytes from TTY (AID, TID, BID, DELTA) BEGIN TRANSACTION UPDATE ACCOUNT WHERE ACCOUNT_ID = AID: READ ACCOUNT_BALANCE FROM ACCOUNT SET ACCOUNT_BALANCE = ACCOUNT_BALANCE + DELTA WRITE ACCOUNT_BALANCE TO ACCOUNT WRITE TO HISTORY: AID, TID, BID, DELTA, TIME_STAMP UPDATE TELLER WHERE TELLER_ID = TID: SET TELLER_BALANCE = TELLER_BALANCE + DELTA WRITE TELLER_BALANCE TO TELLER UPDATE BRANCH WHERE BRANCH_ID = BID: SET BRANCH_BALANCE = BRANCH_BALANCE + DELTA WRITE BRANCH_BALANCE TO BRANCH COMMIT TRANSACTION WRITE 200 bytes to TTY (AID, TID, BID, DELTA) На основе TP1 – обработка розничнобанковских транзакций
  • 12. TPC-A и TPC-B: модель BRANCH B ACCOUNT B*100K 100K HISTORY B*2.6M TELLER B*1010 Цикл в 10 с у каждого терминала 1 транзакция в секунду на каждое отделение Отклик от 90% транзакций – менее 2 сек Считается: средний показатель транзакций в секунду за 15 мин
  • 13. TPC-A и TPC-B: различия TPC-A Терминалы Время на реакцию пользователя TPC-B Серверный тест Сокращённая история (30 дней)
  • 14. TPC-A и TPC-B: критика 1995: признаны несостоятельными Последний результат (DEC, 1994) 3700 tpsA 4800 $/tpsA Первый результат (HP, 1990) 38.2 tpsA 29200 $/tpsA Наследие TP1 Слишком простые, чтобы исключить подстройки Невероятные разбросы результатов
  • 15. TPC-C: усложнение Пороги отклика для 90% транзакций Менее 5 сек для интерактивных операций Менее 20 сек для пакетных процессов Больше вариаций 9 таблиц Вставки, обновления, удаления, отмены операций Доступ по первичными и вторичным ключам 5 типов транзакций NEW-ORDER • новая заявка от клиента PAYMENT • факт платежа • обновление баланса клиента DELIVERY • заявка на доставку • (пакетный процесс) ORDER-STATUS • проверка статуса последней заявки от клиента STOCK-LEVEL • проверка уровня запасов на складе 45% 43% 4% 4% 4%
  • 16. Модель данных TPC-C WAREHOUSE W DISTRICT W*10 10 CUSTOMER W*30K 3K HISTORY W*30K+ 1+ ITEM 100K (fix) STOCK W*100K100K W ORDER W*30K+ 1+ ORDER-LINE W*300K+ 10–15 NEW-ORDER W*5K0–1
  • 17. TPC-C: масштабирование Каждый новый склад → +10 участков, +100 единиц хранения, +300 тыс. клиентов Максимум – 1,2 tpmC на терминал 10 терминалов на склад Квант масштабирования – склад ( )W
  • 18. TPC-C: кластерные и некластерные Кластерные Несколько узлов Без разделяемых ресурсов (федеративные) Сегментирование С общим ресурсом хранения (RAC) Некластерные Один узел
  • 19. TPC-C: метрики tpmC Транзакций в минуту tpmC / $ Стоимость транзакции Полная стоимость оборудования Лицензии и поддержка на 3 года W / ktpmC Энергозатраты на [кило] транзакцию
  • 20. Интерпретация TPC-C По Алану Паркеру (Alan Parker. Tuning databases on Solaris platform. Prentice-Hall, 2002) • …не только создание заявокtpmC × 2 • …если нет монитора транзакцийtpmC / 2 • …если на стороне оператора клиент типа Oracle FormstpmC / 3 • …если используются легковесные экранные формы (curses и т. п.)tpmC × 2 / 3 • …если в приложении не было тонкой настройки SQLtpmC / 2 • …если параллельно нагрузке формируются отчёты или выполняются пакетные заданияtpmC / 2
  • 21. Просто ли обмануть TPC-C? mount -t tmpfs -o size=2048g tmpfs /u01/tablespaces CREATE UNLOGGED TABLE … _ALLOW_RESETLOGS_CORRUPTION = TRUE _IN_MEMORY_UNDO = TRUE _DB_BLOCK_HASH_LATCHES = 32768 █
  • 22. Ответ от Совета Те с т ы н а в с е а с п е к т ы A C I D з а к р е п л е н ы в с п е ц и ф и к а ц и и в в е с ь м а ж ё с т к о й т р а к т о в к е Защита от перезагрузки одного узла Зеркальная синхронная фиксация на отдельном узле Журналы упреждающей записи и восстановление Работоспособность при перезагрузке Защита «одиночного сбоя носителя» Зеркальная синхронная фиксация на раздельно запитанные носители Журналы упреждающей записи на независимом носителе и восстановление Фиксация транзакции = записано на энергонезависимый носитель
  • 23. TPC-C: критика 1990-х Даже оптовики работали по-другому! Заявка: несколько неуспешных поисков с подстановочными символами После каждой заявки печатается бумажный отчёт (иногда трижды) «Обновление балансов» на каждой онлайн-операции при больших нагрузках невозможно → вставка + пакетный досчёт остатков Простая логика Нет декларативных ограничений целостности Нет триггерной логики Нетипичные нагрузки А как же отчётность? А как же системы поддержки принятия решений?
  • 24. TPC: отменённое TPC-D 1995–1999 Первая попытка OLAP-теста TPC-R 2001–2005 Отчётность TPC-W 2001–2005 Онлайн- веб- коммерция
  • 25. TPC-H 1999 год: OLAP vs OLTP “Ad-hoc decision support” Вместо признанного неудачным TPC-D «Весовые категории» 100 ГБ 300 ГБ 1 ТБ 3 ТБ 10 ТБ 30 ТБ 100 ТБ Параллельная нагрузка 22 вида сложных запросов 2 типа обновления хранилища
  • 26. 1 SF ~ 1 GB Ограничения целостности Не звезда TPC-H: модель
  • 27. TPC-H Q1 SELECT l_returnflag, l_linestatus, sum(l_quantity) as sum_qty, sum(l_extendedprice) as sum_base_price, sum(l_extendedprice*(1-l_discount)) as sum_disc_price, sum(l_extendedprice*(1-l_discount)*(1+l_tax)) as sum_charge, avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc, count(*) as count_order FROM lineitem WHERE l_shipdate <= date '1998-12-01' - interval Δ day (3) GROUP BY l_returnflag, l_linestatus ORDER BY l_returnflag, l_linestatus Δ = random [60…120] “ F u n c t i o n a l Q u e r y D e f i n i t i o n ”
  • 28. TPC-H: результаты-2017 Напрямую трудно применимо к нереляционным СУБД Есть варианты трансляции для MOLAP (MDX) Были сообщения о применении для Apache Hive Exasol MS SQL Server Oracle Database Actian Vector От 1 до 10 результатов в каждой «весовой категории»
  • 29. TPC-E: «Практичный OLTP» Тоже OLTP, но более «гибридный» Включённые ограничения целостности Без мониторов транзакций Больше чтений Больше видов нагрузок
  • 31. TPC-E: модель данных Изображение: ©Transaction Processing Council, 2009
  • 32. 78 результатов Все – некластерные, MS SQL Server на Windows Server x64
  • 34. TPC-ABCEH TPC-A/B TPC-C TPC-E TPC-H Предметная область Розничный банк Оптовый склад Брокерский дом Дискретный сбыт Таблиц 4 9 33 8 Чтение-запись 100% 92% 23,10% 8% Чтение 0% 8% 76,90% 92% Ограничения целостности 0 0 22 17 Генерация данных Случайная Случайная Псевдо- действительная Случайная Метрика tpsA tpmC tpsE QphH@Size
  • 35. Новые TPC-x и TPCx-X TPC-DI ETL-нагрузки TPC_DI_RPS 0 результатов TPC-DS Поддержка принятия решений, «включая большие данные» («включая Hadoop/Spark») QphDS@Size 0 результатов TPCx-BB Экспресс- бенчмарк для аналитических больших данных на базе BigBench BBpm@Size 0 результатов TPCx-HS Экспресс- бенчмарк для HDFS- совместимых систем по типу TeraSort HSph@Size От 1 до 4 результатов в разных «весовых категориях»
  • 36. Публикация? Публикация на TPC.org Академическая или исследовательская публикация, не применимая с маркетинговыми целями С однозначным утверждением, что полученный результат не является сравнимым с результатами TPC.org С разрешения TPC.org Запрещено публиковать результаты TPC-тестов, полученные по средствами TPC, кроме следующих случаев:
  • 37. «Оговорка Девитта» в 2017 году? MSFT EULA • “You may not disclose the results of any benchmark test … without Microsoft’s prior written approval” OTN Lic. • “You may not disclose results of any Program benchmark tests without Oracle’s prior consent” IBM IPLA • “Licensee may disclose the results of any benchmark test of the Program or its subcomponents to any third party provided that Licensee, if … A) … B) … C)…”
  • 39. Новым нагрузкам – новые бенчмарки 2010-е 2000-е 1990-е 1980-е OLTP ROLAP ROLAP Резидентный OLAP TCP-DS ROLAP TCP-H Графовые запросы LinkBench MapReduce HiBench OLTP OLTP[E] OLTP[E] TPC-E OLTP Атомарный доступ YCSB TPCx-HS TPCx-BB
  • 40. Основные бенчмарки «новой волны» Terrasort Benchmark BigBench Intel HiBench Yahoo! Cloud Services Benchmark Linkbench • Воплощён в TPCx-HS • Воплощён в TPCx-BB • Серия тестов для Hadoop • Набор «эталонных обстрелов» для NoSQL-систем • Графообразная нагрузка на РСУБД
  • 41. Linkbench Нагрузка Facebook • Ранние графовые тесты были ориентированы на граф-анализ • Реальная нагрузка крупной интернет-компании • Транзакционность (MVCC) Методологично • Статистические законы при генерации • Показатели – средние времена отклика для каждой из нагрузок • Средний отклик в 99-м процентиле • Документов в секунду – на запись • Запросов в секунду – на чтение MySQL (InnoDB vs TokuDB) HBase MongoDB / TokuMX OrientDB В о п р о с F a c e b o o k
  • 43. Yahoo! Cloud services benchmark Новый инструмент «бенчмаркового маркетинга» Смело используется исследователями (V. Abramova et al. Experimental Evaluation of NoSQL Databases // IJDMS Vol.6, №3, 2014) Cassandra HBase Elastic search MongoDB Oracle NoSQL OrientDB Redis Scalaris Tarantool Voldemort Обстрел с одной нагрузочной станции Вместо транзакции – атомарная операция (возможно, чтение нескольких записей)
  • 47. pgbench TPC-B Стандартная часть PostgreSQL Запуск одной строкой Фактический стандарт для нужд PostgreSQL Что лучше – XFS или ext4? Таблицы на SSD, индексы на HDD, или наоборот? Размер блока – 4K или 8K?
  • 48. Sysbench Широко используется для внутренних сравнений MySQL, MariaDB и их форков Своеобразные тесты, не похожие на какие-либо стандартные бенчмарки Утилита MySQL (автор – Алексей Копытов) fileio cpu memory threads mutex oltp
  • 50. HammerDB Свободная Java-GUI-программа, запускающая TPC-C (?) и TPC-H (?) с поддержкой множества СУБД: Oracle Database Microsoft SQL Server IBM DB2 TimesTen MySQL MariaDB Postgre SQL Postgres Plus AS Greenplum DB Redis Amazon Aurora (MySQL) Amazon Redshift (ParAccel) Trafodion SQL on Hadoop
  • 52. HammerDB: TPC, но не совсем… При этом нет востребованных в современных бенчмарков TPC-E TPC-DS TPC-H Единственная нагрузочная станция TPC-C Не эмулируется нагрузка всего окружения Нагрузочная станция – в роли единственного монитора транзакций
  • 53. HammerDB: популярность Используется вендорами оборудования и платформ Но аккуратно, в формате «блог нашего сотрудника» Хаб с результатами тестов Раздел «Performance Data»
  • 54. Swingbench TPC-C-подобная нагрузка на Oracle Database и Timesten + Своеобразный OLTP- тест с большой PL/SQL-логикой Специфичные для Oracle DB средства мониторинга и анализа (AWR, etc.) Поддержка координатора GUI и командная строка Сравнимость только внутри инструмента Нерепрезентативные результаты в условиях RAC
  • 55. Quest Benchmark factory for databases Oracle Database MySQL MS SQL Server SQLite SQL Anywhere Коммерческий инструмент TPC-C ? TPC-D TPC-E TPC-H ASP3AP Поддерживает архитектуру с несколькими нагрузочными станциями (Windows)
  • 56. osdldbt.sourceforge.net • TPC-WDBT-1 • TPC-CDBT-2 • TPC-HDBT-3 • TPC-AppDBT-4 • TPC-EDBT-5 While the inspiration for these workloads are the TPC-<x…>, workloads are entirely different and results obtained from them should not and can not be compared to TPC results. The use of any supplied results of these tests for commercial purposes is expressly prohibited. MySQL PostgreSQL …расширяемо
  • 57. oltpbench github.com/oltpbenchmark/oltpbench Java-средство для командной строки Для любой РСУБД с поддержкой JDBC Особая версия для Hstore (VoltDB ) TPC-C Wikipedia Synthetic Resource Stresser Twitter Epinions.com TATP AuctionMark SEATS YCSB JPAB (Hibernate) CH- benCHmark Voter SIBench (Snapshot Isolation) SmallBank LinkBench
  • 58. TPC tools Средства от Совета… Исходные тексты на Си Н е т д л я T P C - C : только «сэмпл» в спецификации Вся соединяемость и прочая работа – своими руками
  • 59. TPC-* By Example По «отчётам о полном раскрытии информации» на TPC.org
  • 60. Benchware «Швейцарский нож» от Манфреда Дрозда: Peakmarks Benchware OraCPU PL/SQL op • [ops] PL/SQL alg • [ops] OraSRV In-memory SQL • [ms] • [dbps] • [tps] • [rps] OraSTO SeqIO • [GBps] • [iops] RandIO • [GBps] • [iops] OraOLTP OLTP Select • [rps] • [tps] OLTP Update • [rps] • [tps] OraLoad TransLoad • [rps] • [tps] BulkLoad • [rps] • [tps] OraAgg OraAgg & Rep • [rps] • [tps] Только Oracle Database, только PL/SQL и SYS.V_$%
  • 62. Воспроизведение нагрузки: точный опыт Системы с полным API-доступом (обычно JSON via HTTP) Журналирование и «самозахват» Повтор с интервалами Разделение типов нагрузки (категорий пользователей) Масштабирование по данным? Средства эмуляции нагрузки JMeter LoadRunner … Средства на стороне СУБД Oracle Real Application Testing (Database Replay) MS SQL Server Distributed Replay
  • 63. Тонкости «зашнуровки» Как размножить базу данных? «Вегетативное размножение» Повторные со случайным сдвигом? Наложение реальных данных (из открытых данных) Влияние на аналитику Предсказуемые выборки Пониженная селективность Влияние на OLTP Ключи, индексы…
  • 64. Тиражируемые приложения 1C: типовая конфигурация «Стандартный нагрузочный тест» Показатель – Apdex (число одновременно работающих пользователей при заданном максимальном времени отклика) Microsoft Dynamics AX Application Benchmark Toolkit Oracle E-Business Suite Standard Benchamrks Order-to-Cash OLTP Payroll … SAPS [SAP Application Performance Standard] на модуле SD
  • 65. RPE2 SAP SD 2-Tier TPC-C TPC-HSPEC jbb2005 SPEC CPU2006 Суперкомпозитный показатель от Gartner (Ideas) RPE2-ERP RPE2-Java RPE2-OLTP RPE2-Compute Intensive
  • 67. Машины баз данных? Предконфигурированные аппаратно-программные комплексы для СУБД Кто, как не они должны быть «проверены и отмерены» для практических целей?
  • 68. Teradata Последние публикации Teradata c TPC-H: Лицензируется по «внутреннему Qph» – tPerf [Traditional Performance]
  • 69. Exadata Не публикуются tps, Qph… «Паспортные показатели» (X6-8) ෍ 𝑉 × IOPS ≈ Const
  • 70. IBM Pure Data for Operational analytics Не публикуются Qph… «Паспортные данные» – про ввод-вывод
  • 71. “SQL IOPS” Получение SQL IOPS для других СУБД? Статистические представления (…IO_STATS…) IOPS со стороны Oracle Database Orion(Oracle IO Numbers) SLOB(рекомендуют EMC, Flashgrid) Benchware (?) DBMS_RESOURCE_MANAGER .CALIBRATE_IO
  • 73. Атомизация показателей: Pro Независимость от заданных моделей и схем Признаются производителями машин баз данных Доступны для «карманной инструментовки» Показательны для широкого класса СУБД и СУБД-подобных систем • Показательны не только для 3NF, снежинок, звёзд • Включены в «паспортные показатели» • Могут быть запущены со стороны БД • Могут быть интересны для NoSQL
  • 74. Атомизация показателей: …et contra Вопросы к методологии Результаты CALIBRATE_IO и Benchware – разные Неочевидный прикладной смысл результата Для разных СУБД одно и то же число операций – разное количество транзакций Нет готового инструмента для большинства известных СУБД Есть для Oracle DB, IBM DB2, MS SQL
  • 75. Дискуссионные вопросы • Смогут ли стать столь же популярными, как TPC-C и TPC-H в своё время? • Проблема мегаконфигураций TPC-E и TPC-DS • TPC-B повторить просто • Остальные – сложно или с неполным соответствием «Карманный» инструментарий • Признание, адаптация и стандартизация, интерпретация • Возможны ли другие показатели подобного рода? SQL IOPS & Bandwidth • Атомарные (YCSB-тип) • Графовые (LinkBench-тип) Стандартизация и универсализация тестов для новых нагрузок • Новые типы приложений – порталы, системы групповой работы • Новые архитектуры слоя БД – сегментация, резидентные СУБД, резидентные гриды Перспективы эталонных тестов на основе реальной нагрузки нового поколения
  • 76. Спасибо за внимание! mailto:[email protected] mailto:[email protected] Материал доступен по лицензии CC-SA 3.0, некоторые использованные изображения и логотипы могут принадлежать другим правообладателям