Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Один файл базы - два (и более) сервера. / 25 сообщений из 40, страница 1 из 2
24.11.2015, 20:21:55
    #39112638
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Доброе время суток!
Да и вообще Здравствуйте!

Есть два нода. Подключены по SAS к дисковой полке.
(Два разных компа видят один диск)
На обоих нодах(компах) MySQL, которые используют базу,
расположенную на одном диске, совместном для двух нодов(компов).
Простите, что утрирую. Просто обычно набегают троли и все глохнет.

Чего я только не начитался на просторах Инета!
Видимо как-то неправильно запрос задаю.

В основном репликация и кластеризация. В дополнение - бред и холивар!

Вопрос: могут ли, в принципе, два сервера MySQL обращаться к одной базе данных на одном носителе?
Т.е. диск один. База одна. MySQL два.(еще раз простите!)

Спасибо за конкретный ответ с (возможными) примерами!
...
Рейтинг: 0 / 0
24.11.2015, 22:25:15
    #39112709
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74,

Движок какой используется?
...
Рейтинг: 0 / 0
24.11.2015, 22:38:18
    #39112714
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Теоретическая возможность так делать для myisam описана - https://dev.mysql.com/doc/refman/5.6/en/external-locking.html
Но, я не слышал чтобы кто-то это использовал. Даже в этом документе написано "not recommended".
...
Рейтинг: 0 / 0
24.11.2015, 23:21:48
    #39112735
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Вот еще нарыл для ситуации "только для чтения" для InnoDB:
http://dev.mysql.com/doc/refman/5.7/en/innodb-read-only-instance.html Multiple MySQL instances querying the same data directory simultaneously, typically in a data warehousing configuration. You might use this technique to avoid bottlenecks that can occur with a heavily loaded MySQL instance, or you might use different configuration options for the various instances to tune each one for particular kinds of queries.
...
Рейтинг: 0 / 0
25.11.2015, 18:17:16
    #39113476
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Спасибо за ответы!

Грустно как-то!

netwind:

Действительно написано - not recommended. Более того, что-то типа "stop one of instance"!


Причем ведь вроде как ядро многопоточное!
Все равно есть механизм блокировок!
Что мешает?



Еще раз спасибо!
...
Рейтинг: 0 / 0
25.11.2015, 18:44:15
    #39113493
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Что мешает?
Многопользовательский доступ к одному файлу требует запись информации о блокировках на диске. В отличие от сеансов и потоков одного сервера, которые прекрасно разруливают это дело в оперативной памяти. Соответственно скорость работы с данными падает катастрофически.

Так что лучше, если с каждой БД будет работать один сервер. А второй, буде надо ему что из базы, пусть лучше с вопросами обращается к этому первому, благо есть Federated Engine. Или реплицировать в обе стороны.
...
Рейтинг: 0 / 0
26.11.2015, 00:05:50
    #39113647
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Akina которые прекрасно разруливают это дело в оперативной памяти.
Вы в это сам то верите?
Может посчитаем? Возьмём Ваш сайт.... У Вас оперативной памяти 8 Гб ...

AkinaТак что лучше, если с каждой БД будет работать один сервер. А второй, буде надо ему что из базы, пусть лучше с вопросами обращается к этому первому, благо есть Federated Engine. Или реплицировать в обе стороны.

Ну и слава богу! Вот и решили проблему! Сдохнет один и пускай ему! Второй подождет! Че ему мучатся! Данных то все равно нет! Репликация не прошла! Да и репликация-то своеобразная! С диска с на диск с! Мы ведь с себя на себя реплицируем!
Цитата изначального вопроса: "Есть два нода. Подключены по SAS к дисковой полке."
Да и репликация времени не занимает!

Обращение к дискам SAS пусть будет 3Gbit/s. Минус накладные - и того чего то порядка от 0.3 до 1 ГБАЙТ/с (Там 4 провода!)
Обращение по Ethernet 1 Gbit. Минус накладные - и того порядка 500-700 Мбит (сразу! почитайте стандарты и функционирование стека! а то начнется!)

Ну и пускай реплицирует! Пусть весь мир подождет!
...
Рейтинг: 0 / 0
26.11.2015, 00:16:20
    #39113652
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74, вы как-то неправильно гордитесь mysql.
операции в памяти на одном компьютере значительно быстре, чем отправка разных сигналов из двух разных компьютеров на третью "полку" и взаимные ожидания для согласованной записи.


авторОбращение к дискам SAS пусть будет 3Gbit/s. Минус накладные - и того чего то порядка от 0.3 до 1 ГБАЙТ/с (Там 4 провода!)
Ну пробуйте на практике.
Просто мы знаем, что вам в конце концов самим не понравится и вы придете к репликации.
...
Рейтинг: 0 / 0
26.11.2015, 11:14:55
    #39113834
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Вы в это сам то верите?
Верю? что за бред?
Для меня SQL-программирование - это хобби, а не религия. И я знаю... нет, не так - я убеждён, что отслеживание блокировок отдельных потоков/соединений в рамках одного сервера в оперативной памяти выполняется на порядки быстрее, чем отслеживание блокировок через файл блокировок на диске в случае двух серверов, обращающихся к одному и тому же файлу БД. Даже в случае SSD-дисков разница по скорости всё равно составляет не проценты, а разы.

Selen74Обращение к дискам SAS пусть будет 3Gbit/s.
Угу... и track seek 4 мс, за которые диск про***т передачу 12 мегабайт данных. А поскольку этих тракосиков будет не один и не два - то не надо тут дутой арифметики. А гигабитному этхернету никакие головки двигать не надо.
...
Рейтинг: 0 / 0
27.11.2015, 19:04:40
    #39115191
jan2ary
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
AkinaА гигабитному этхернету никакие головки двигать не надо.А на другой стороне этхернета портал в метаинформацинное пространство, или тоже головки?
...
Рейтинг: 0 / 0
28.11.2015, 17:56:44
    #39115393
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
AkinaВерю? что за бред?
....
И я знаю... нет, не так - я убеждён, что отслеживание блокировок отдельных потоков/соединений в рамках одного сервера в оперативной памяти выполняется на порядки быстрее, чем .....


Вы так верите, что аж меня заставили! Признаю! Съедаю Снимаю шляпу!
Без сарказма!

AkinaУгу... и track seek 4 мс, за которые диск про***т передачу 12 мегабайт данных.
А поскольку этих тракосиков будет не один и не два - то не надо тут дутой арифметики. А гигабитному этхернету никакие головки двигать не надо.

А, как абсолютно правильно выразился jan2ary на другой стороне не с "головки"?
Далее добавим перца...
netwindНу пробуйте на практике.
Просто мы знаем, что вам в конце концов самим не понравится и вы придете к репликации.

Я, ни в кое случае, не оспариваю Ваш профессионализм!
И вопрос даже не в том, что у меня Такая конфигурация и нужно защитить инвестиции!

Я поторопился и не написал, что это веб приложение. Простите!
И, к стати, спасибо за аргументированную дискуссию! Я про " набегут троли "! Это явно не про Вас!

Я просто хочу понять и найти соответствующее решение.
При Web-приложении:
1. На "чтение" уходит до 90% всех операций обращения к БД.
2. Из 10% операций по записи около 70% требуют "моментального" перепрочтения записанных данных.
Для контроля, для отправки юзверю и т.д. и т.п. Причем "запись" - это, как правило, один HTTP запрос, а
визуализация результата - другой. Не пинайте! Так, мне во всяком случае, проще.
3. Из 10% операций записи - 80% записывают информацию новую, не изменяющую уже имеющуюся.
4. Т.е. 20% записей изменяют и конкурируют!

Т.о., мы, в соответствии с моим любимым матаном, имеем порядка 70% из 20% из 10% = 1.4% операций к БД,
вызывающих конкуренцию за запись! Дисперсия по времени (16 часов активного рабочего дня) нам даст сотые доли
процента.
И это по максимуму. На некоторых сайтах вообще записи нет!

Но, дьявол кроется в деталях!

5. При высоконагруженных сервисах - где (на каком из нодов) окажется запрос на визуализацию результатов чтения
только что записанных данных - непредсказуемо.
6. Репликация не бывает "моментальной". И накладные расходы по чтению новой записи->подготовки передачи-> передача
-> прием -> анализ -> запись в БД - задержка Z. Это если она Реально "моментальная" а не по времени!
Если по времени, то вообще неприемлемо!

И, в соответствии с п.5 мы приходим к тому, что п.2 реально под угрозой!
Мы дадим юзверю данные, в лучшем случае, предыдущие ! А так-то 0.7 перечитываемых данных из 0.1 "записи"
* 0,ХGb (фактически скорость передачи соединения) * Uc * Z
где Z задержка на репликацию, Uc - количество пользователей.
Т.е. где-то ...
Имеем значительный процент вероятности того, что в системе репликации,
мы выдадим вообще не контролируемые данные по, пусть маленькому, но самому важному
сегменту данных!

Ух!!!
Но, это так!
Очень не хочется из-за 1.4% коллизий чтения с диска тратится на второй набор дисков - подождем!
И, практически (в моем случае) 2% (возможных. и это пока! без роста производительности)
недостоверных данных - а вот это уже ни как!
Городить два сервера с двойным набором дисков и двойной стоимостью
мне не хочется!

Ну, как бы так!
...
Рейтинг: 0 / 0
28.11.2015, 19:49:18
    #39115416
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74, ну давайте сначала начнем и возможно, вопросы отпадут на раннем этапе:
авторрасположенную на одном диске, совместном для двух нодов(компов).
а как именно будет это сделано ? или уже сделано ? а файловая система какая тогда?
по-моему в линуксе нельзя два раза файловую систему примонтировать в двух местах. Там какой-то флаг пишется в нее, кажется.
Ну даже если и получится игнорировать этот флаг, логические проблемы в ядре наверняка возникнут.
...
Рейтинг: 0 / 0
28.11.2015, 21:17:43
    #39115461
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen743. Из 10% операций записи - 80% записывают информацию новую, не изменяющую уже имеющуюся.Ошибаетесь. БД пишет данные блоками. И даже простой INSERT в конец таблицы произведет сначала чтение последнего блока, его модификацию с добавление новой записи и запись обратно. А если блок будет прочитан из буферного кэша, то данный инстанс MySQL даже не узнает, что другой инстанс уже модифицировал блок, и перезапишет его. Я уж не говорю про модификацию индексов, запись Redo и Undo логов.

Да и при простом чтении нет гарантии, что этот блок не изменен другим инстансом. А механизма синхронизации кэшей в MySQL нет (по крайней мере, если не говорить о кластере).
...
Рейтинг: 0 / 0
29.11.2015, 19:23:57
    #39115773
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
netwindSelen74, ну давайте сначала начнем и возможно, вопросы отпадут на раннем этапе:
авторрасположенную на одном диске, совместном для двух нодов(компов).
а как именно будет это сделано ? или уже сделано ? а файловая система какая тогда?

Самое простое - MS Server Datacenter. Лучше 2012r2
netwindпо-моему в линуксе нельзя два раза файловую систему примонтировать в двух местах. Там какой-то флаг пишется в нее, кажется.
Ну даже если и получится игнорировать этот флаг, логические проблемы в ядре наверняка возникнут.
Для Linux вообще куча всяких FS.
...
Рейтинг: 0 / 0
29.11.2015, 20:14:10
    #39115798
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Самое простое - MS Server Datacenter. Лучше 2012r2А чего вы тогда с MySQL жметесь?
Ставьте Oracle RAC, он как раз так и работает - с общими дисками.
...
Рейтинг: 0 / 0
29.11.2015, 20:23:04
    #39115805
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
[quot Selen74]netwindSelen74, ну давайте сначала начнем и возможно, вопросы отпадут на раннем этапе:
пропущено...

а как именно будет это сделано ? или уже сделано ? а файловая система какая тогда?

Самое простое - MS Server Datacenter. Лучше 2012r2
не, какую кнопку нажать там ? Как называется такой тип разделения диска ?
Если я правильно представляю, там что-то типа репликации диска в одну сторону и получается просто горячий резерв.

netwindпо-моему в линуксе нельзя два раза файловую систему примонтировать в двух местах. Там какой-то флаг пишется в нее, кажется.
Ну даже если и получится игнорировать этот флаг, логические проблемы в ядре наверняка возникнут.
Для Linux вообще куча всяких FS.
И все они одинаковы.
Если речь не идет о кластерных файловых системах типа OCSF2
...
Рейтинг: 0 / 0
29.11.2015, 20:49:20
    #39115817
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
miksoftОшибаетесь. БД пишет данные блоками. И даже простой INSERT в конец таблицы произведет сначала чтение последнего блока, его модификацию с добавление новой записи и запись обратно. А если блок будет прочитан из буферного кэша, то данный инстанс MySQL даже не узнает, что другой инстанс уже модифицировал блок, и перезапишет его. Я уж не говорю про модификацию индексов, запись Redo и Undo логов.
Кто ж его блоками то угораздил? Уж не файловая система?
Даже в ту... не самом продвинутом Инет-магазине не одна таблица!
Опять же конкуренция в минус.
Это не противоречит вероятности возникновения коллизий.
Да и... мы уже поняли, что стандартный MySQL этого не может.

miksoftДа и при простом чтении нет гарантии, что этот блок не изменен другим инстансом. А механизма синхронизации кэшей в MySQL нет (по крайней мере, если не говорить о кластере).
Да и при репликации баз нет гарантии! И, более того, при репликации-то это гарантия полностью отсутствует!
Вот ведь ... сумка!

И, Господа! Из нашей с вами беседы, не кажется вам, что разобранные нами кейсы
как-то демонизируют работу сервера с памятью!
Что-то я, просмотрев нашу переписку, думаю, что "а не дофигали в памяти то у сервера содержится?"
Какое-то чувство, на уровне тазобедренного сустава, мне подсказывает, что память-то он почаще на диск сбрасывает,
чем мы о нем думаем!
Где-то промелькивала информация о, чуть ли не, тысяч операций/сек на MySQL.
Это, простите, сколько памяти то надо?
...
Рейтинг: 0 / 0
29.11.2015, 21:11:44
    #39115828
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
авторДа и при репликации баз нет гарантии! И, более того, при репликации-то это гарантия полностью отсутствует!
Вот ведь ... сумка!
Это неправда. Есть синхронная репликация - это с гарантией.
Но практика такова, что выгоднее отказаться от синхронности ради увеличения производительности. Поэтому вы могли подумать что ее нет. Ну нет и нет. В вебе это обычно игнорируют. Чего и вам советуем.
...
Рейтинг: 0 / 0
29.11.2015, 21:38:48
    #39115844
Selen74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
netwindЭто неправда. Есть синхронная репликация - это с гарантией.
Но практика такова, что выгоднее отказаться от синхронности ради увеличения производительности. Поэтому вы могли подумать что ее нет. Ну нет и нет. В вебе это обычно игнорируют. Чего и вам советуем.
Будем считать, что мы не поняли друг друга!

Приложение:
1. Сохраню содержимое корзины.
1.1. Сохраняю в БД (~)
1.2. Перенаправляю страницу на показ.
2. Потом выдам его для контроля юзверю.
2.1. Читаю данные.
2.2. Формирую страницу.
2.3. На странице нет результатов сохранения!

Запросы 1.2. и 2.1. на разных нодах! На разных! При скорости работы Апачей, Нгниксов, ИИСов с балансировкой - это дцать ms!
Им не надо "головки" двигать!
Через дцать ms на нод, отличный от записывающего, придет запрос "дай запись корзины"!
Где репликация? Гарантия чего? Гарантия репликации только что записанной записи нода 1 в ноде 2?
Задержек нет?
Ну... не серьезно как-то по второму-то разу одно и тоже!
...
Рейтинг: 0 / 0
29.11.2015, 21:51:25
    #39115849
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Кто ж его блоками то угораздил? Уж не файловая система?Нет, дисковый ввод-вывод, который осуществляется тоже блоками. А все остальные блоки - ФС, СУБД - кратны дисковому блоку.
Selen74Даже в ту... не самом продвинутом Инет-магазине не одна таблица!Запись идет в очень небольшой перечень таблиц - в клиенты, заказы, статистика посещаемости, просмотров.
Selen74Что-то я, просмотрев нашу переписку, думаю, что "а не дофигали в памяти то у сервера содержится?"
Какое-то чувство, на уровне тазобедренного сустава, мне подсказывает, что память-то он почаще на диск сбрасывает,
чем мы о нем думаем!
Где-то промелькивала информация о, чуть ли не, тысяч операций/сек на MySQL.
Это, простите, сколько памяти то надо?Если ничего не меняется, то ничего на диск сбрасываться не будет (кроме побочных данных - логов, временных таблиц и т.п.).
Тысячи операций/сек возникают, когда в СУБД приходит соответствующий поток запросов на модификацию данных.
А если запросов на модификацию нет, то MySQL может работать даже на read-only-носителе.
...
Рейтинг: 0 / 0
29.11.2015, 21:57:24
    #39115853
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74,

Кстати, еще один гвоздь в крышку гробика, который вы пытаетесь построить - innodb_flush_log_at_trx_commit.
Ставите единицу - получаете чудовищные тормоза.
Ставите другое значение - получаете отложенную (в среднем на полсекунды) запись изменений на диск со всеми вытекающими.
...
Рейтинг: 0 / 0
29.11.2015, 21:57:31
    #39115854
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Где репликация? Гарантия чего? Гарантия репликации только что записанной записи нода 1 в ноде 2?
Задержек нет?

Именно. Ответ на запрос обновления не вернется пользователю придет подчиненый сервер не сообщит от за принятии транзакции.
Поэтому во всяких штуках реализующих распределение запросов пользователя кидают на одно и ту же ноду. Какая-нибудь хеш функция от IP или еще чего-нибудь.

Да, есть задержки. Но под вебом редко подразумеваются интернет-магазины. Если за каждой покупкой стоят реальные деньги обычно нет таких проблем.
...
Рейтинг: 0 / 0
29.11.2015, 21:59:04
    #39115855
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
Selen74Запросы 1.2. и 2.1. на разных нодах! На разных! При скорости работы Апачей, Нгниксов, ИИСов с балансировкой - это дцать ms!Даже на этом форуме в пункте 1.2 происходит задержка на некоторое время. Вам никто не мешает сделать так же.
...
Рейтинг: 0 / 0
29.11.2015, 22:01:26
    #39115857
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
miksoft, вопрос не столько в принципиальной возможности, сколько в целесообразности. многие из описываемых проблем решаются. Вот я тут нагуглил типа сценария - http://www.fromdual.com/sites/default/files/external_locking.pdf
Ну, очевидно, если опция есть и до сих пор поддерживается, как-то этот сценарий работать должен.
query cache выключается, delay_key_write выключается. Ну и все
...
Рейтинг: 0 / 0
29.11.2015, 22:04:58
    #39115861
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Один файл базы - два (и более) сервера.
netwind,

Так external locking - это только для MyISAM.
Я же неявно придерживаюсь версии, что будет использоваться InnoDB, раз уж мой вопрос про движок был проигнорирован.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Один файл базы - два (и более) сервера. / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]