The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Сравнение производительности MariaDB 10.1 и MySQL 5.7"
Отправлено Аноним, 23-Окт-15 07:40 
А куда деваться?
База данных это много операций с памятью. Модификация этих структур должна быть атомарна (возможность менять несколько полей и не получать частичные изменения от других потоков).
Значит нужны мьютексы или хитрые lock-free алгоритмы (которые приводят к увеличению использования памяти и мы теряем процессорный кеш).

Если мьютексов мало, то производительность на 1-4 потоках выше.
Барьеры дорогое удовольствие: http://kristiannielsen.livejournal.com/17598.html

Обратно, если мы исполняем одновременно сотни или тысячи потоков, то один горячий мьютекс сводит производительность на нет (например в mysql 4.1 или старых посгресах): работают 1-2 ядра процессора, остальные не используются. Как чинить такие проблемы? Разбивать мьютексы не несколько: вместо одной большой структуры делаем десяток структур, самые горячие структуры защищаем отдельными мьютексами. Например вместо одной точки выдачи новых значений auto_increment делаем несколько генераторов нового значения с разным смещением (offset).

Приходим к тому что новое решение может использовать современные процессоры.
В обычные 2U влезает 2-4 сокета, Intel предлагает процессоры с 12ти ядрами, amd с 16ти.
Итого получаем 48-64 честных ядра и 96 с гипертредингом, который с ростом количества ядер становится более эфективным.

Значит горячие мьютексы из mysql 4.1 надо размножить минимум в 100 раз чтобы максимально эфективно использовать дешёвое серверное железо. Если брать дорогое железо (те же power, на которых MariaDB показывала 1 миллион запросов в testbench, содержат до 1024 потоков на исполнение).

Итого, даже если производительность одного потока будет в 3 раза меньше, за счёт 100 ядер процессора мы получим в 30 большую производительность на современном железе, чем мы имели на старых версиях mysql/postgresql

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру