GoProg

 
Топ хэштегов


Архив

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

С другой стороны, базы данных NoSQL охватывают ситуации, когда модель ACID является избыточной или фактически препятствует работе базы данных. Вместо этого NoSQL полагается на более мягкую модель, известную, соответственно, как модель BASE. Термин BASE был предложен Эриком Брюером, автором теоремы CAP, согласно которой в распределённых вычислениях можно обеспечить только два из трёх свойств: согласованность данных, доступность или устойчивость к разделению. Сама модель учитывает гибкость, предлагаемую NoSQL, и стоит на трех принципах:

  • Базовая доступность (basic availability). Подход к базе данных NoSQL фокусируется на доступности данных даже при наличии множества сбоев. Это достигается путем использования распределенного подхода к управлению базами данных. Вместо того чтобы поддерживать одно большое хранилище данных и сосредоточиться на отказоустойчивости этого хранилища, базы данных NoSQL распределяют данные по многим системам хранения с высокой степенью репликации. В маловероятном случае, если сбой нарушает доступ к сегменту данных, это не обязательно приводит к полному отключению базы данных.
  • Мягкое состояние (soft state). Базы данных BASE почти полностью отказываются от требований согласованности модели ACID. Одна из основных концепций, лежащих в основе BASE, заключается в том, что согласованность данных является проблемой разработчика и не должна обрабатываться базой данных.
  • Возможная последовательность (eventual consistency). Единственное требование, которое базы данных NoSQL имеют в отношении согласованности, – это требование, чтобы в какой-то момент в будущем данные конвергировались в согласованное состояние. Однако никаких гарантий относительно того, когда это произойдет, не дается. Это полное отклонение от требования немедленной согласованности ACID, которое запрещает выполнение транзакции до тех пор, пока предыдущая транзакция не будет завершена и база данных не приблизится к согласованному состоянию.

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

#ACID #BASE #databases #IT #базыданных #СУБД



Новый комментарий: