Почему NoSQL говорит, что традиционный RDBMS не хорош в [закрытом] масштабируемом

12
задан shuitu 6 August 2010 в 11:11
поделиться

3 ответа

Большинство систем РСУБД гарантируют так называемые свойства ACID. Большинство этих свойств сводится к согласованности; каждое изменение ваших данных переводит вашу базу данных из одного согласованного состояния в другое согласованное состояние.

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

Теорема CAP гласит, что распределенная (т.е. масштабируемая) система не может одновременно гарантировать все следующие свойства:

  • Согласованность
  • Доступность
  • Толерантность к разделам

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

Базы данных NoSQL отказываются от согласованности в пользу доступности. Вот почему они лучше масштабируются.

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

37
ответ дан 2 December 2019 в 03:53
поделиться

Запросы, включающие несколько сегментов, являются сложными (например, СОЕДИНЕНИЯ между таблицами в разных сегментах)

0
ответ дан 2 December 2019 в 03:53
поделиться

Почему парни и дудеты NoSQL не любят объединения: http://www.dbms2.com/2010/05/01/ryw-read-your-writes-consistency/

1
ответ дан 2 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: