Распределенные базы данных - действительно ли это возможно в рамках парадигмы РСУБД? - PullRequest
1 голос
/ 02 ноября 2010

Я спрашиваю об этом в контексте NoSQL - который обеспечивает масштабируемость и производительность без больших затрат.

Итак, если мне нужно было добиться массово параллельных распределенных вычислений между базами данных ... Какие существуют различные методологии, доступные сегодня (в рамках парадигмы СУРБД) для достижения распределенных вычислений с высокой масштабируемостью?

Способствует ли кластеризация и зеркалирование баз данных каким-либо образом распределенным вычислениям?

Ответы [ 3 ]

2 голосов
/ 02 ноября 2010

Полагаю, вы спрашиваете о масштабируемости баз данных RDBMS.Разговоры о базах данных NoSQL, основанных на (Amazon Dynamo, BigTable), - это совсем другая тема.Я говорю о HBase, Cassandra и т. Д. Есть также коммерческие продукты, такие как Oracle Coherence, которые, грубо говоря, больше похожи на распределенный кеш и хранилище значений ключей.

возвращаясь к rdbms,

Sharding, чтобы масштабировать RDBMS, можно сделать cusstom sharding.Sharding - это метод, при котором у вас есть несколько таблиц, возможно, несколько хостов.И тогда вы решаете определенным образом назначить определенные строки определенным таблицам.Например, вы можете сказать, что строки 1-1M идут в таблицу1, 1M-2M - в таблицу2 и т. Д. Но это сложный процесс с точки зрения администрирования.Многие крупные сайты масштабируются, полагаясь на шардинг.Другими методами, заслуживающими упоминания, являются разбиение на разделы, федерация mysql и кластер mysql.

Базы данных MPP. Существуют также базы данных, которые являются самой СУБД, которая выполняет распределение и масштабирование для вас.Terradata является самой успешной из этих компаний.Я считаю, что в какой-то момент они использовали основной код Postgres.Значительное количество компаний из списка Fortune 500 и многие авиакомпании используют Terradata.Но это смехотворно дорого.Есть новые компании, такие как Greenplum, Vertica, Netezza.

1 голос
/ 20 декабря 2012

Если вы не очень большая компания с экстремальными требованиями к масштабируемости, вы можете горизонтально и с помощью ACID масштабировать свою БД, создав кластер идентичных экземпляров СУБД и синхронизировав их с транзакциями JTA.

Ознакомьтесь с этой статьей на основе Java / JDBC *. Используется JEPLayer инфраструктура, но вы можете использовать прямой код JDBC и JTA.

0 голосов
/ 19 января 2012

Внутри парадигмы СУБД: Sharding.
За пределами парадигмы СУБД: хранилища ключей и значений.

Мой выбор: (Я пришел из фона СУБД) Хранилища значений ключей типа табулара - HBase.

В рамках парадигмы RDBMS шардинг не поможет вам продвинуться вперед.
Используйте парадигму RDBMS для разработки модели, запуска и запуска проекта.
Использование табличных хранилищ значений ключей для SCALE OUT,

Sharding:

Хороший способ думать о Sharding - это рассматривать его как ориентированный на учетную запись пользователя
DB дизайн.

Все объекты схемы, которых касается учетная запись пользователя, хранятся на одном хосте.

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

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

Каждый хост имеет набор учетных записей пользователей.

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

Решением этой проблемы является наличие дублированного резервного хоста, который
становится основным, когда основной хост сталкивается с проблемами.

Кроме того, это довольно жесткая настройка для процессов, в которых дизайн
не претерпевает существенных изменений.

С точки зрения пользователя, я заметил, что веб-сайты
с изолированным бэкэндом БД не так быстро "включают десять центов"
для создания различных бизнес-моделей на своей платформе.

Сравните это с веб-сайтами, которые действительно распространили
хранилищ ключей.Эти предприятия могут принимать любой спектр услуг
.Их платформа - это просто платформа.
Она не реляционная и имеет интерфейс API,
, но, похоже, она работает.

...