Какой аспект реляционных баз данных затрудняет их масштабирование в таких сервисах, как Google App Engine? - PullRequest
7 голосов
/ 30 января 2010

Очевидно, что причина архитектуры BigTable связана с трудностью масштабирования реляционных баз данных, когда вы имеете дело с огромным количеством серверов, с которыми приходится иметь дело Google.

Но с технической точки зрения, что именно затрудняет масштабирование реляционных баз данных?

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

Ответы [ 3 ]

6 голосов
/ 30 января 2010

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

Хорошо настроенный сервер СУБД будет выполнять большинство запросов на горячих страницах в ОЗУ с небольшим объемом физического диска или сетевого ввода-вывода.

Если вы ограничены сетевым вводом-выводом, преимущества реляционных данных уменьшаются.

3 голосов
/ 30 января 2010

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

Стратегия, используемая нереляционными базами данных, такими как Bigtable, является обратной: денормализация, чтобы сделать чтение намного проще, за счет повышения стоимости записи.

0 голосов
/ 30 января 2010

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

Подумайте об индексе в стандартной базе данных, может быть, в нескольких полях ... поисковым системам нужен быстрый текстовый поиск для больших текстовых полей.

...