170 похожих чатов

Здравствуйте. У меня вопрос не конкретно по MySQL, а скорее

по СУБД в целом (если не по адресу, то пните в нужную сторону, пожалуйста). Я не понимаю, каким образом, могут работать несколько экземпляров СУБД одновременно, если они все обращаются к одному и тому же файлу БД? Или этих файлов тоже создаётся несколько штук, и они с некоторой периодичностью синхронизируются? Как тогда избежать ошибок, если, например, 2 пользователя одновременно попытались создать учётку с одинаковым юзернеймом? У меня в голове каша, так что прошу прощения за такие глупые вопросы)

22 ответов

23 просмотра

что-то я твой вопрос не очень понял. Несколько экземпляров СУБД работать с одной datadir не могут. несколько инстансов с разными datadir на одном сервере работать могут (при соблюдении разных портов, разных сокетов, разных логов)

Smith- Автор вопроса
Egor Zagorskiy
что-то я твой вопрос не очень понял. Несколько экз...

Ну, я имею в виду, когда у сервиса очень высокая нагрузка, то поднимают несколько экземпляров СУБД для обслуживания пользователей. Запросы, как я понимаю, идут к одним и тем же БД. Вот и вопрос, как экземпляры СУБД доступ к БД делят, ибо это же очевидное бутылочное горлышко.

Smith
Ну, я имею в виду, когда у сервиса очень высокая н...

в классической схеме есть master (куда пишут) и сколько-то slave, откуда можно только читать.

Smith- Автор вопроса
Egor Zagorskiy
google://репликация

Репликация — это дублирование данных, когда данные с одного сервера полностью повторяются на других Значит, БД тоже дублируется

Smith- Автор вопроса
Egor Zagorskiy
в классической схеме есть master (куда пишут) и ск...

Спасибо, значит механизм я +- верно понял.

Smith
Ну, я имею в виду, когда у сервиса очень высокая н...

СУБД потому и называется СУБД, что она всё сама разруливает. Как - зависит от конкретной СУБД. MySQL создаёт OS thread на каждое соединение, PostgreSQL - процесс

Egor Zagorskiy
в классической схеме есть master (куда пишут) и ск...

Это помогает при масштабировании чтения (размазываем запросы чтения через какой-нибудь балансировщик на N реплик). Если упёрлись в запись, то нужно шардирование (дробление баз/таблиц на куски по какому-то признаку)

Sveta Smirnova
СУБД потому и называется СУБД, что она всё сама ра...

Тот забавный момент, когда про то, как работают БД внутри я знаю больше своих коллег, и при этом вот таких простых важных вещей не знаю У меня вопрос. Может, где-то собрана информация, как работают под капотом различные движки БД? Что именно гуглить? Сорцы читать не предлагать — я охренею

kai 3341
Тот забавный момент, когда про то, как работают БД...

а какие движки кроме innodb тебе нужны? экзотика типа MyRocksdb?

Egor Zagorskiy
а какие движки кроме innodb тебе нужны? экзотика т...

Помимо движков, поддерживаемых MySQL/MariaDB (как минимум, есть ещё Aria и Mroonga. Не считая всяких Spyder, TokuDB ...) хотелось бы понимать ещё и про постгрю (тут у меня ппц пробел)

kai 3341
Тот забавный момент, когда про то, как работают БД...

MySQL - книги Expert MySQL by Charles Bell, MySQL Internals by Sasha Pachev, MySQL Plugins by Sergei Golubchick and Andrew Hutchings. Блоги - Jeremy Cole Мануал - doxygen на сайте dev.mysql.com

kai 3341
Помимо движков, поддерживаемых MySQL/MariaDB (как ...

По PostgreSQL отличные книги выложены на сайте компании PostgreSQL Professional. Они ещё и на русском. У них ещё и тренинг есть по внутренностям, тоже бесплатный.

Smith
Ну, я имею в виду, когда у сервиса очень высокая н...

Помимо репликации есть еще кластеры. И кластеры бывают разные. Есть shared nothing архитектура, есть shared disk. На пример Oracle RAC - как раз shared disk. И да, в нем несколько экземпляров (инстансев) работают с одной и той же базой данный (файлами данных), которая находится на «расшаренном диске». Вопрос в том, какие проблемы должен решать кластер. Как кластер «разруливает» обращение к одним и тем же файлам зависит от конкретной реализации.

Maks
Помимо репликации есть еще кластеры. И кластеры бы...

AWSовская аврора вроде тоже с одними и теми же файлами работает мульти-инстансно. Вот бы это в опенсорс попало когда-нибудь

Sveta Smirnova
NFS 🧌

не заработает же

Ilya Anfimov
А откуда такое мнение?

из их презентаций. я мог не всё уловить, но понял так. Репликация у них точно не бинлоговая (внутри региона)

Ilya Anfimov
А откуда такое мнение?

Ну в документации у них так написано - The Aurora shared storage architecture makes your data independent from the DB instances in the cluster. For example, you can add a DB instance quickly because Aurora doesn't make a new copy of the table data. Instead, the DB instance connects to the shared volume that already contains all your data.

Sveta Smirnova
MySQL - книги Expert MySQL by Charles Bell, MySQL ...

Я прочитал "MySQL Internals by Sasha Pachev" (к сожалению, остальные найти в pdf не удалось). И я не нашёл ответов на свои вопросы Также я перелопатил википедию на предмет структур данных — варианты b-tree, LSM-tree, варианты R-tree Вопрос следующий. Мне не удалось найти информацию, с каким профилем нагрузки хорошо работают популярные движки MySQL / MariaDB? 1) InnoDB. Какая структура данных на диске в контексте О-нотации? Нашёл про 2 ещё актуальных на сегодня формата таблиц InnoDB — и там тоже нет ответа. Подозреваю, что вариация b-tree со всеми вытекающими — я прав или нет? 2) RocksDB. Структура данных — LSM-tree. Прикол LSM-tree в том, что там по сути 2 дерева, но есть вариации (LSMb / Diff-index). И вот далее я ничего не понимаю. Окей, понятно, что вставка в LSM-tree происходит быстро. А вот с апдейтами я ничего не понял. Что в конечном счёте происходит с SSTable? Как там хранятся данные? Какая его структура. Как работают апдейты и делиты? 3) Aria и Mroonga. Оба — форки MyISAM. Я ещё не добрался до их документации (в плане совсем вглубь не копал). Вопросы те же. Мета. В сущности меня интересует производительность О-нотация для CRUD разных движков, их сильные и слабые стороны. Может, я неправильно гуглил?

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта