Могут ли облачные вычисления масштабировать и бэкэнд? - PullRequest
3 голосов
/ 18 июня 2009

Я выбираю платформу для веб-приложения.

Я понимаю, как облачные вычисления могут масштабировать серверы переднего плана, но что они делают с серверами баз данных?

Есть ли что-то, что разработчик должен сделать, чтобы учесть это?

Ответы [ 7 ]

2 голосов
/ 18 июня 2009

В общем да. Наиболее распространенный способ масштабирования БД на нескольких машинах - это использование хранилища столбцов . Таким образом, каждый столбец в таблице может храниться на отдельном компьютере, что значительно увеличивает количество ресурсов процессора и пропускную способность, доступные для поиска. Поиск также может выполняться параллельно, поиск по столбцу компании будет выполняться только на одном сервере, поэтому поиск по столбцу года не будет медленнее.

Из того, что я прочитал, так работает Google MapReduce.

Раздел преимуществ страницы хранилища столбцов в Википедии особенно информативен.

Аналогичным образом, OLAP интересно. OLAP полностью меняет компромисс между чтением и записью. Запросы и чтение выполняются быстро для больших и сложных запросов, но для записи новых данных требуется трудоемкий процесс восстановления.

1 голос
/ 01 марта 2014

Это очень сильно зависит от решения, которое вы выберете для своего бэкэнда. Некоторые приложения используют сочетание для обработки различных типов данных.

С базой данных, такой как MySQL или PostgreSQL, трудно работать, когда необходимо масштабирование. Для нашего проекта мы решили использовать Cassandra (которая в то время, о которой вы спрашивали, вероятно, еще не существовала!), Которая позволяет хранить данные на любом количестве бэкэнд-компьютеров. При этом вы также позволяете внутренним процессам запускаться на совершенно разных компьютерах, чтобы вы могли выполнять все виды вычислений без необходимости замедлять работу базы данных или внешнего интерфейса (например, Apache).

Я говорю об этом в нашем проекте на этой странице:

http://snapwebsites.org/implementation/snap-websites-processes

Поиск по слову «Процесс». Существует также изображение, представляющее различные процессы, и каждый из них может работать на отдельном компьютере (если у вас такая большая нагрузка, что вам нужно больше лошадиных сил):

enter image description here

А на самом деле некоторые из Snap! Бэкэнды, показанные в этом примере, могут работать на нескольких компьютерах, в то время как один экземпляр обрабатывает этот веб-сайт, а другой - этот другой веб-сайт. Довольно мощный.

1 голос
/ 18 июня 2009

Короткий ответ : Да.

Длинный ответ : Это зависит. Какую обработку нужно сделать? Может ли это быть уменьшена карта? Для такого рода вещей существует множество решений. Распределенное кэширование в виде memcache также может помочь масштабировать многие службы в бэкэнде.

0 голосов
/ 29 июня 2009

Насколько я недавно наткнулся на статью, посвященную именно этому. Это обсуждалось в лекции, поэтому, хотя я знаком с содержанием статьи, я сам ее не читал. Тем не менее, у лекции были очень интересные идеи: http://reports -archive.adm.cs.cmu.edu / anon / 2008 / CMU-CS-08-150.pdf

0 голосов
/ 18 июня 2009

Amazon и Google используют хранилища данных, они отличаются от традиционных СУБД.

Дополнительную информацию можно найти, перейдя по этой ссылке

И вы можете найти краткий список хранилищ данных здесь

0 голосов
/ 18 июня 2009

Если вы пользуетесь облачным провайдером, который просто предоставляет ssh-доступ к виртуальному ящику, вам потребуется реализовать собственное масштабирование базы данных. Если вы используете Google AppEngine, партнерскую платформу Intuit или что-то подобное, масштабируемость встроена в предоставленное вам хранилище данных.

По сути, в облачных вычислениях нет ничего волшебного. Чтобы получить эту встроенную масштабируемость, вы отказываетесь от некоторой свободы. Хранилище данных Google не обеспечивает все аспекты полноценной реляционной базы данных, но вы можете масштабировать до смешного объема трафика.

0 голосов
/ 18 июня 2009

Это зависит от базы данных

Slicehost использует MySQL Cluster, Google использует эту карту, чтобы уменьшить шумиху и другие. Зависит от облачного провайдера и базы данных , которую они используют

Другие просто предоставляют ВМ, и вы настраиваете свою собственную базу данных на виртуальных машинах с частными IP-адресами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...