Распределенные транзакции
Набор требований к распределенным базам данных, которых хотят достигнуть
Требования по децентрализации
- Локальная независимость - узел должен функционировать даже в изоляции
(имеется в виду отвечать как на запросы на чтение, так и на изменение).*
- Отсутствие центрального узла, так как при его наличии и отключении не выполнится локальная независимость.*
- Непрерывное функционирование, то есть надежность и доступность.*
Требования по прозрачности
- Независимость от расположения
а) Программы могут работать на любом узле (данные действительно хранятся распределенно в отличие от репликации); б) Удаленный доступ к данным (должны уметь сделать любой запрос на любом узле); Распределенная БД должна логически себя вести как одна большая БД.*
Независимость от фрагментации
- Программы не знают на каком узле находятся данные.*
- Унифицированный доступ к данным.*
- Географическое секционирование.*
Независимость от репликации
- Автоматическая поддержка репликации.*
- Выбор узла для обновления.*
Распределенные транзакции
- Поддержка распределенных запросов.
а) Один запрос получает данные с разных узлов; б) Несколько узлов могут участвовать в одной транзакции; в) Должна быть согласованность фиксаций и отката.*
- Независимость от окружения.
а) От аппаратуры, то есть должны быть унифицированное представление данных; б) От ОС, то есть должна быть конвертация данных и поддержка разных ОС; в) От сети, например, в дата центрах будет быстрая локальная связь; г) От типа СУБД, хотелось бы уметь делать распределенную БД, которая обслуживается разными системами управления БД (Oracle, Postgres, etc). Но в реальности все очень печально.*