Распределенные транзакции — различия между версиями

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

Версия 00:34, 20 декабря 2021

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

Требования по децентрализации

  • Локальная независимость - узел должен функционировать даже в изоляции

(имеется в виду отвечать как на запросы на чтение, так и на изменение).

  • Отсутствие центрального узла, так как при его наличии и отключении не выполнится локальная независимость.
  • Непрерывное функционирование;
    •  Надежность;
    • Доступность.

Требования по прозрачности

  • Независимость от расположения;
    • Программы могут работать на любом узле (данные действительно хранятся распределенно в отличие от репликации);
    • Удаленный доступ к данным (должны уметь сделать любой запрос на любом узле);

Распределенная БД должна логически себя вести как одна большая БД.

Независимость от фрагментации

  • Программы не знают на каком узле находятся данные.
  • Унифицированный доступ к данным.
  • Географическое секционирование.

Независимость от репликации

  • Автоматическая поддержка репликации.
  • Выбор узла для обновления.

Распределенные транзакции

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