Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: резнесение базы на несколько серверов [3]
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
а где связь между системой которая может быть подвергнута маштабации в ширь и пачкой админов устанавливающих/настраивающих дорогую систему?
связь между проектом приносящим нехилое количество бабла и возможность на это бабло нанять профи-админов а не побиратся по форумам. Проект который бабло не приносит не требует вообще никакого масштабирования, тут и вопроса нет.
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
caballero, уточню вопрос
есть проект, ожидается нагрузка, если в будущем (когда возникнет необходимость) будет куплена, установлена, настроена эта или ей подобная система
то можно ли гарантировать что от нее будет должная отдача, при условии что сейчас в проекте не будут учитываться нюансы
в виде снижения перекрестных запросов и выносу логики из базы?
caballero
Отправлено: 26 Февраля, 2013 - 09:45:00
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
есть проект, ожидается нагрузка,
Это я уже понял. Для проекта на который ожидается нагрузка выбрали в качестве платформы не то что нужно а что что умеем. А теперь сидим и чешем репу какими костылями его подпереть.
Цитата:
в виде снижения перекрестных запросов и выносу логики из базы?
не очень понял что такое перекрестный запрос, а насчет БД - откуда там вообще логика? Если это не промышленный сервер БД то триггера и процедуры будут работать исключительно медленно - туда вообще не надо было заносить никакую логику.
Вообще, прежде чем что то делать надо выяснить узкие места в проекте а не просто предполагать. То есть как минимум надо провести нагрузочное тестирование и профилирование проекта как целого так по составляющим частям.
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
caballero пишет:
Для проекта на который ожидается нагрузка выбрали в качестве платформы не то что нужно а что что умеем.
тоесть все ваши ответы сводятся к тому, что для разработки чего либо нагруженного нужно юзать совсем не пыху с мускулем, позиция ясна еще из предыдущих постов, и "юзать для постройки железобетон вместо дерева" тоже помню).
vanicon
Отправлено: 26 Февраля, 2013 - 11:03:19
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
DlTA пишет:
тоесть все ваши ответы сводятся к тому, что для разработки чего либо нагруженного нужно юзать совсем не пыху с мускулем, позиция ясна еще из предыдущих постов, и "юзать для постройки железобетон вместо дерева" тоже помню).
Я не совсем по этому поводу согласен, так как нагруженность проекта понятие относительное, для кого - то и 10 тыс уников в день это большая нагрузка, а для кого это обычная ситуация....
Еще раз повторюсь что можно писать морду и на пыхе, а когда вот пыха станет "узким горлышком" вот тогда и можно уже подумать о переходе на другой яп.
А насчет бд то есть много open source проектов которые могут горизонтально расширяться без костылей, можно и mysql расширять но с костылем, используете пока привычный вам mysql а как придет время для серьезного расширения, то тут уже будите думать, самостоятельно заниматься расширением, или же пересесть на другую бд, которая это умеет из коробки...
Просто в mysql не должно быть логики, триггеров, и поменьше join запросов.
И вам мой совет, решайте проблемы по мере их поступления...
----- Так было, так есть и так будет
DlTA
Отправлено: 26 Февраля, 2013 - 11:15:31
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
vanicon пишет:
Просто в mysql не должно быть логики, триггеров, и поменьше join запросов
на это и расчитано, перенести эту нагрузку на скрипта
оставив на базу лишь те перекрестные запросы без которых эти данные будут не целостными.
caballero
Отправлено: 26 Февраля, 2013 - 11:41:14
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Еще раз повторюсь что можно писать морду и на пыхе, а когда вот пыха станет "узким горлышком" вот тогда и можно уже подумать о переходе на другой яп.
а оплачивать переписывание кто будет? Особенно если проект уже запущен в работу, что добавляет головняка не только с переисыванием а переносом данных клиентов.
. Поэтому и остается в системмах котрые неожиданно для себя выросли из коротких штанишек, PHP/Mysql с кучей костылей в виде node.js всяких там мемкешей акселераторов и прочего.
Если системма планируется на высокую нагрузко изначально (другой вопрос что 99.9% этих наполеоновских планов так и остаются мечтами, особенно если ха это берутся новички а не серьезные фирмы с многолетним опытом разработаки) выбирать заведомо проиграшный вариант только потому что проще синтаксис и настройка - глупо.
Цитата:
А насчет бд то есть много open source проектов которые могут горизонтально расширяться без костылей, можно и mysql расширять но с костылем, используете пока привычный вам mysql а как придет время для серьезного
Проблемма в том что если серьезная системма то там нужно в первую очередь не масштабирование а надежность и скорость. Могут ли эти опенсор системмы обеспечить например распределенные транзакции? Большинство NoSQL, например не могут вообще никаких транзакций обечпечить.
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
caballero пишет:
а оплачивать переписывание кто будет? Особенно если проект уже запущен в работу, что добавляет головняка не только с переисыванием а переносом данных клиентов.
. Поэтому и остается в системмах котрые неожиданно для себя выросли из коротких штанишек, PHP/Mysql с кучей костылей в виде node.js всяких там мемкешей акселераторов и прочего.
Если системма планируется на высокую нагрузко изначально (другой вопрос что 99.9% этих наполеоновских планов так и остаются мечтами, особенно если ха это берутся новички а не серьезные фирмы с многолетним опытом разработаки) выбирать заведомо проиграшный вариант только потому что проще синтаксис и настройка - глупо.
Дело все в том что нагрузка при которой узким местом может быть яп, очень редки, так что не стоит сразу писать на с++ или на java если на 100% не уверен что это того стоит, так как только усложнишь себе жизнь, писав на них год, когда на том же пыхе это можно сделать за 2-3 месяца.
caballero пишет:
Проблемма в том что если серьезная системма то там нужно в первую очередь не масштабирование а надежность и скорость. Могут ли эти опенсор системмы обеспечить например распределенные транзакции? Большинство NoSQL, например не могут вообще никаких транзакций обечпечить.
Для большинства задач, транзакции и вовсе там не нужны, так как у них другие модели данных и совсем по другому хранишь данные нежели в рсубд, но ради примера в redis есть поддержка транзакции.
Да я не говорю что nosql это серебряная пуля, для такие задачи с транзакциями в большинстве своем не применимы.
Но если так подумать то они, для обычного веб приложения и не нужны...
А если есть интерес к это теме, то есть даже теореме насчет бд, насчет расширяемости, доступности и согласованности, не помню как она называется, но если погуглить можно найти, так сказать для каждой бд свои задачи которые она должна решать... (Добавление)
И думаю достаточно было сказано, а то уж прям какой - то холивар на тему бд начинается...
----- Так было, так есть и так будет
DlTA
Отправлено: 26 Февраля, 2013 - 12:00:20
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
caballero пишет:
а оплачивать переписывание кто будет? Особенно если проект уже запущен в работу, что добавляет головняка не только с переисыванием а переносом данных клиентов.
. Поэтому и остается в системмах котрые неожиданно для себя выросли из коротких штанишек, PHP/Mysql с кучей костылей в виде node.js всяких там мемкешей акселераторов и прочего.
Если системма планируется на высокую нагрузко изначально (другой вопрос что 99.9% этих наполеоновских планов так и остаются мечтами, особенно если ха это берутся новички а не серьезные фирмы с многолетним опытом разработаки) выбирать заведомо проиграшный вариант только потому что проще синтаксис и настройка - глупо.
а это уже экономический вопрос,
потратить кучу средств в проект который возможно и не будет сверх ...
или сделать наметки на то, что бы в будущем можно было обойтись без сильного головняка
имхо второе выгодней (хотя цифр у меня в руках нет)
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
если на 100% не уверен что это того стоит
Разумеется. Пробьлемма в том что каждый второй новичек обычно на 100500% уверены что он второй Цукерман.
Цитата:
Дело все в том что нагрузка при которой узким местом может быть яп, очень редки,
дело не в синтаксисе языка а в платформе и технологии на которой это базируется.
Цитата:
так как только усложнишь себе жизнь, писав на них год, когда на том же пыхе это можно сделать за 2-3 месяца.
если речь о чисто страничках то да. Но если речь о всем комплексе решений то не факт.
Цитата:
Для большинства задач, транзакции и вовсе там не нужны, так как у них другие модели данных и совсем по другому хранишь данные нежели в рсубд, но ради примера в redis есть поддержка транзакции.
необходимоть транзакций зависит не от модели данных а от ценности информации.
Если это новостной портал который просто читают - это одно дело - если хранятся данные клиентов - сосвем другое.
Цитата:
то есть даже теореме насчет бд, насчет расширяемости, доступности и согласованности, не помню как она называется,
Это называется ACID и есть ряд исследований в который математически доказывается что NoSQL системмы это не могут обеспечить в принципе.
Цитата:
но ради примера в redis есть поддержка транзакции.
это не транзакции - там даже нормальных блокировок нет.
Цитата:
так сказать для каждой бд свои задачи которые она должна решать
разумеется, только ищут обычно не БД для решения конкретной задачи а делают задачу и кнопят туда ту БД которую знвют.
Фишка в том что реляционные субд могут заменить NoSQL а наоборот - врядли. А не каждый готов платить за сопровождение двух СУБД в одном проекте.
Не далее как в прошлом году, по этой причине, пришлось на одном проекте перекладывать проект с CouchDB на MSSQL.
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
caballero пишет:
Это называется ACID и есть ряд исследований в который математически доказывается что NoSQL системмы это не могут обеспечить в принципе.
Насколько я знаю ни одна бд не может обеспечить все 3 функции, максимум тока 2 какие-либо...И nosql системы тут не причем...
caballero пишет:
это не транзакции - там даже нормальных блокировок нет.
Каждая операция - атамарна, есть возможно несколько запросов применить как 1 атомарную операцию...
caballero пишет:
Фишка в том что реляционные субд могут заменить NoSQL а наоборот - врядли.
Конечно можно и без nosql и жить дальше с рсубд, но дело все в том, что для конкретных задач рсубд справляется хуже чем nosql, так сказать зачем мне 2 сервера на mysql, когда с моими задачами может справиться и 1 свервер на nosql...
Конечно речи о замене рсубд не идет, они будут, но просто использоваться они будут только для важных данных которые нельзя потерять и там где нужны транзакции, например банки и похожие системы...
caballero пишет:
пришлось на одном проекте перекладывать проект с CouchDB на MSSQL.
А вот про это можно поподробнее, зачем и почему?
DlTA, если не секрет, то что за проект, в 2 словах?
----- Так было, так есть и так будет
DlTA
Отправлено: 26 Февраля, 2013 - 12:58:40
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
vanicon пишет:
если не секрет, то что за проект, в 2 словах?
игра+примочки социалки
caballero
Отправлено: 26 Февраля, 2013 - 13:05:23
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Насколько я знаю ни одна бд не может обеспечить все 3 функции, максимум тока 2 какие-либо...И nosql системы тут не причем...
вообще то четыре и реляционные СУБД это обеспечивают при соответствующих настройках хоть и за счет некотрой потери производительности.
Цитата:
Каждая операция - атамарна, есть возможно несколько запросов применить как 1 атомарную операцию...
еще раз - там нет нормальных блокировок и уровней изоляции транзакций. Транзакция на одного пользователя никому не нужна.
Цитата:
так сказать зачем мне 2 сервера на mysql, когда с моими задачами может справиться и 1 свервер на nosql...
обычно волпрос тоит наоборот - зачем мне две разные субд если может справится и одна. А для кеширования ключ-значение и мемкеш сойдет.
Цитата:
но просто использоваться они будут только для важных данных которые нельзя потерять и там где нужны транзакции, например банки и похожие системы...
и мнго ты знвешь системм где данные можно терять. Например этот форум. От потери данных конечно никто деньги не потеряет, но вряд ли кто то обрадуется если потеряются его посты или аккаунт.
Ведь не зря в последних версиях mysql по дефолту теперь не myisam а innodb
Цитата:
А вот про это можно поподробнее, зачем и почему?
амерский заказчик заказал кким то румыноам сайт по логистике контейнеров. они увидевши что все базируется на ордерах, накладных и прочем влепили документно-ориентированную БД. Потом не знаю какие там прблеммы возникли (скорее всего с поиском, складским учетом и генерацией многочисленных репортов.), но опустившись на землю начали часть данных перекладывть на mssql. потом заказчику это надоело он послал предыдущую команду куда подальше. В принципе часть данных типа языковые метки для интернационализации и т.д. удобнее было хранить в CouchDb и получать в виде Json но поскольку мне светил саппорт, доработка и особенно апдейты этого хозяйства я решил не иметь лишного гемора и все свел в одну БД.
обычно волпрос тоит наоборот - зачем мне две разные субд если может справится и одна. А для кеширования ключ-значение и мемкеш сойдет.
Все правильно с рсубд можно сделать почти все, а потом в мем кеше кешировать, но
как ранее говорилось для своих задач своя бд, например вот общение в реальном времени, для таких дел mysql + memcached использовать с моей точки зрения не разумно, это один из примеров где рсубд не лучшее решение.
caballero пишет:
и мнго ты знвешь системм где данные можно терять. Например этот форум. От потери данных конечно никто деньги не потеряет, но вряд ли кто то обрадуется если потеряются его посты или аккаунт.
Ведь не зря в последних версиях mysql по дефолту теперь не myisam а innodb
Конечно потеря данных это всегда плохо, но вот даже если взять этот форум, то например ничего бы страшного не произошло если бы затерялись какие нибудь старые топики...
Думаю тема себя исчерпала...
----- Так было, так есть и так будет
caballero
Отправлено: 26 Февраля, 2013 - 14:56:22
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Все правильно с рсубд можно сделать почти все, а потом в мем кеше кешировать,
не совсем правильно - в мемкеше есть смысл кешировать оперативные данные не связанные с бизнес данными. Например сессионные данные пользователя и т.д.
кроме того, если приложение написаное на яве то объекты кеширует в памчти ява-машина. а если это сервер приложений то он еще и следит за жизненным циклом объектов - выгружает те которые редко использются на диск а често используемые держит в памяти. И никаких прослоек (к которым еще и коннектится по TCP приходится) не надо. В этом и разница какая платформа выбрана.
Цитата:
то например ничего бы страшного не произошло если бы затерялись какие нибудь старые топики
Законы Мерфи тебе возразят - потеряются не старые топики а самые новые вместе с аккаунтами тех кто их повтыкал.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.