Вопрос об архитектуре веб-приложения (Большая БД, экспоненциально).Вместо этого используйте таблицы Azure или SimpleDB? - PullRequest
0 голосов
/ 11 июля 2010

У меня есть веб-приложение, которое хранит большое количество текстовых данных. БД в настоящее время увеличивается на 1 ГБ в неделю. Я ожидаю, что это будет расти в геометрической прогрессии, поскольку мы получаем больше клиентов, поэтому 1 ГБ на этой неделе, 2 ГБ на следующей неделе, 4 ГБ на следующей неделе, затем 8 ГБ и т. Д. *

Сейчас эти данные хранятся в одной базе данных MS SQL 2008 размером 10 ГБ. Производительность сейчас отличная, никаких проблем пока нет.

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

Кроме того, нам нужно найти хорошую стратегию резервного копирования для БД, которая не слишком дорога.

Я подумываю переместить хранилище в Amazon Simple DB или перенести наше веб-приложение в Azure и использовать таблицы Azure для хранения этих данных.

Преимущества Azure в том, что резервное копирование будет выполняться автоматически (как для таблиц Azure, так и для базы данных SQL Azure). Недостатками являются стоимость и тот факт, что несколько частей приложения необходимо будет реструктурировать для запуска в Azure и использования таблиц Azure.

Плюсы Simple DB в том, что мы в настоящее время находимся на EC2 и можем остаться там, и потребуется меньше переписать приложение, чтобы использовать SimpleDB вместо SQL Server. Минусы: нам все еще нужна эффективная стратегия резервного копирования для SQL Server.

Мы могли бы также просто оставить приложение в том виде, в каком оно есть сейчас, в базе данных MS SQL 2008 (я просто не уверен, насколько большой может обрабатывать БД SQL Server - максимальные примеры, которые я видел, составляют 1 ТБ или около того); но опять же, нам нужна эффективная стратегия резервного копирования и восстановления для довольно большой БД. Но преимущество заключается в том, что мы можем выполнять реляционные запросы к данным, поэтому наличие данных на сервере SQL имеет небольшое преимущество.

Мне интересно, какое лучшее решение? И как другие компании масштабируют такие большие и растущие базы данных. А также, какие варианты резервного копирования и восстановления являются лучшими?

Также подойдет любой совет или опыт, которым вы можете поделиться с таблицами Azure, SimpleDB или большими базами данных SQL Server!

1 Ответ

3 голосов
/ 12 июля 2010

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

http://www.google.com/search?q=distributed+database

http://cassandra.apache.org/

http://voltdb.com/

или прочитайтенекоторые статьи из http://highscalability.com/

Удачи!

...