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

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

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

22 ответов

72 просмотра

что-то я твой вопрос не очень понял. Несколько экземпляров СУБД работать с одной 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 разных движков, их сильные и слабые стороны. Может, я неправильно гуглил?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта