42
Распределенные системы, распределенные базы данных, NoSQL Владимир Старостенков [email protected]

Распределенные системы и БД

Embed Size (px)

Citation preview

Page 1: Распределенные системы и БД

Распределенные системы, распределенные базы данных,

NoSQL

Владимир Старостенков[email protected]

Page 2: Распределенные системы и БД

Что такое “распределенная система”?

Page 3: Распределенные системы и БД

«Материал из Википедии — свободной энциклопедии

Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.

Для распределённых систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределённой системой является Интернет.

»

Что такое “распределенная система”?

Page 4: Распределенные системы и БД

«Материал из Википедии — свободной энциклопедии

Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.

Для распределённых систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределённой системой является Интернет.

»

Что такое “распределенная система”?

Page 5: Распределенные системы и БД

«Материал из Википедии — свободной энциклопедии

Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.

Для распределённых систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределённой системой является Интернет.

»

Что такое “распределенная система”?

Page 6: Распределенные системы и БД

«Материал из Википедии — свободной энциклопедии

Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.

Для распределённых систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределённой системой является Интернет.

»

Что такое “распределенная система”?

Page 7: Распределенные системы и БД

«Материал из Википедии — свободной энциклопедии

Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.

Для распределённых систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределённой системой является Интернет.

»

Что такое “распределенная система”?

Page 8: Распределенные системы и БД

● отношения местоположений элементов играют существенную роль

● распределение функций, ресурсов между множеством элементов

● отсутствие единого управляющего центра

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

Что такое “распределенная система”?

Page 9: Распределенные системы и БД

● отношения местоположений элементов играют существенную роль

● распределение функций, ресурсов между множеством элементов

● отсутствие единого управляющего центра

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

Доверяй, но проверяй!

Что такое “распределенная система”?

Page 10: Распределенные системы и БД

● отношения местоположений элементов играют существенную роль

● распределение функций, ресурсов между множеством элементов

● отсутствие единого управляющего центра

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

Доверяй, но проверяй!

“A distributed system is a collection of independent computers that appears to its users as a single coherent system.”

(Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum, Maarten Van Steen)

Что такое “распределенная система”?

Page 11: Распределенные системы и БД

Доверяй, но проверяй!

“A distributed system is a collection of independent computers that appears to its users as a single coherent system.”

(Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum, Maarten Van Steen)

“A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.”

Leslie B. Lamport

Что такое “распределенная система”?

Page 12: Распределенные системы и БД

Что такое “распределенная система”?

Программное обеспечение промежуточного уровня - c его помощью пользователи полагают, что имеют дело с единой системой, а все различия между компьютерами и способы связи между ними остаются скрытыми для пользователей.

Page 13: Распределенные системы и БД

Что такое “распределенная система”?

Page 14: Распределенные системы и БД

Что такое “распределенная система”?

Параллельная вычислительная система

Page 15: Распределенные системы и БД

Что такое “распределенная система”?

Параллельная вычислительная система

● Отсутствие единого времени

● Отсутствие общей памяти

● Гетерогенность

Page 16: Распределенные системы и БД

Что такое “распределенная система”?

● Подумайте над определением самостоятельно

● Определитесь - чем будете заниматься Вы

Page 17: Распределенные системы и БД

Зачем нужна распределенная системаКакова цель построения такой системы?

Page 18: Распределенные системы и БД

Зачем нужна распределенная система

Медленно выполняется? Что делать?

Page 19: Распределенные системы и БД

Зачем нужна распределенная система

Медленно выполняется? Что делать?

Есть решение: добавим CPU, RAM, Disk, Network etc.

Это называется вертикальным масштабированием.

Page 20: Распределенные системы и БД

Зачем нужна распределенная система

Медленно выполняется? Что делать?

Есть решение: добавим CPU, RAM, Disk, Network etc.

Это называется вертикальным масштабированием.

А что если? Если дорого? Если невозможно с точки зрения физики?

Page 21: Распределенные системы и БД

Зачем нужна распределенная система

Иное решение: нужно больше серверов!

Горизонтальное масштабирование (вычислительной системы).

Page 22: Распределенные системы и БД

Что такое распределенная база данных?

Page 23: Распределенные системы и БД

Что такое распределенная база данных?

Это распределенная система имеющая персистентное состояние.

Page 24: Распределенные системы и БД

Что такое распределенная база данных?

Это распределенная система имеющая персистентное состояние.

Персистентное состояние живет дольше чем породивший его процесс.

Распределенная БД предоставляет возможность прочитать это состояниеи изменить его.

Page 25: Распределенные системы и БД

Partitioning

Система распределила данные по многим серверам

Page 26: Распределенные системы и БД

Partitioning

Как разделить данные для распределения по многим серверам?

Page 27: Распределенные системы и БД

Partitioning

Как разделить данные для распределения по многим серверам?

По колонкам - vertical partitioning

По строкам - horizontal partitioning

Page 28: Распределенные системы и БД

Partitioning

Как разделить данные для распределения по многим серверам?

По колонкам - vertical partitioning

По строкам - horizontal partitioning

Page 29: Распределенные системы и БД

Каким критериям должна удовлетворять распределенная БД?

● Consistency - после параллельного выполнения набора запросов все части системы имеют единое непротиворечивое представление о состоянии системы, такое же, как если бы эти запросы выполнялись последовательно

● Availability - система должна быть доступна для записи и чтения, такого рода запросы сопровождаются корректным ответом

● (Network) Partition Tolerance - система может “пережить” сетевые ошибки, network partition

Page 30: Распределенные системы и БД

Какие проблемы могут возникнуть?

1 2 3 4 5 6 7 8 9

Довольные пользователи

Page 31: Распределенные системы и БД

Какие проблемы могут возникнуть?

1 2 3 4 5 6 7 8 9

Недовольные пользователи

Вышел из строя отдельный сервер

Page 32: Распределенные системы и БД

Репликация

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Page 33: Распределенные системы и БД

Репликация

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Page 34: Распределенные системы и БД

Репликация

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Важно: “копии” перестали быть просто копиями

Page 35: Распределенные системы и БД

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Какие проблемы могут возникнуть?

Разрыв сети

Page 36: Распределенные системы и БД

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние?

Разрыв сети

Page 37: Распределенные системы и БД

1 2 3 4 5 6* 7* 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние? Да.

Разрыв сети

Page 38: Распределенные системы и БД

1 2 3 4 5 6* 7* 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние? Да.

Разрыв сети

Система находитсяв неконсистентном состоянии

Page 39: Распределенные системы и БД

1 2 3 4 5 6* 7* 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние? Да.

Разрыв сети

Система находитсяв неконсистентном состоянии

Availability +Partition Tolerance

Page 40: Распределенные системы и БД

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние? Нет.

Разрыв сети

Page 41: Распределенные системы и БД

1 2 3 4 5 6 7 8 9

Довольные пользователи

4 8 9 2 3 7 1 5 6

Разрешаем ли мы модифицировать состояние? Нет.

Разрыв сети

Consistency +Partition Tolerance

Page 42: Распределенные системы и БД

Спасибо за внимание!