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