Распределённая обработка информации и NoSQL базы данных
Курс повышения квалификации для инженеров-программистов
Project maintained by dluciv
Hosted on GitHub Pages — Theme by mattgraham
Распределённая обработка информации и NoSQL базы данных
- © Дмитрий Луцив
- © Ещё кто-то, но пока не совсем понятно, кто именно =)
Лицензия на материалы пока тоже непонятно, какая, но будем считать, что уже есть.
Аннотация
Этот курс составлен по мотивам программы одноименного спецсеминара для 4 курса (бакалавриат) студентов отделения информатики Матмеха СПбГУ.
В отличие от спецсеминара для студентов, этот курс ориентирован на программистов, которые уже обладают достаточным опытом в практическом программировании и хотят расширить свою эрудицию в актуальных областях.
Курс подразумевает занятия, которые объединяют в себе лекции, семинары и совместные лабораторные работы. От участников ожидается активная обратная связь. Мы будем вместе пробовать рассматривать распределённые вычислительные системы и СУБД, обрабатывать данные, пробовать реализовывать свои вычислительные системы.
Расписание
Когда?
По вторникам с 17:30 до 19:00 (внимание, не с 17:10, а с 17:30). Пока так. Наверное и дальше тоже. Длительность курса — 8 пар.
Место встречи изменить можно
Встречаемся у 4337, фактически занятие проводим в помещении, которое способно будет нас вместить. В случае, если нас окажется более двухсот, идём в парк Сергиевка.
А если виртуально?
Общения много, но порой хочется ещё больше, и круглосуточно.
Сей чат как раз на такой случай. Чат запущен на основе системы Matrix. Вы можете зарегистрироваться на сервере создателей, а можете запустить свой — система децентрализованная, подобно Email или XMPP, и разные сервера крепко дружат друг с другом.
Программа
Отметим сразу, что в связи с организационной спецификой, некоторые слушатели по ряду тем могут быть более эрудированы и иметь больший практический опыт, нежели преподаватель. В этом случае очень приветствуется как активное участие (которое приветствуется всегда), так и выступление кого-либо из слушателей с докладом на выбранную тему.
Программа может и, вероятно будет меняться по мере исполнения.
Доступны приветсвтенные слайды.
Проблематика
- Хочется много
- Закон Мура — правда, мура́, и где всё-таки правда
- Закон Амдала
- Топология задачи и топология вычислителя (пример — станция управления лифтом)
- Реляционные БД и СУБД
- Сложность
- Масштабируемость и доступность
- Вопросы программной инженерии — таблицы-объекты-таблицы
- Вопросы допрограммной инженерии — вспомним табуляторы
Доступны слайды и видеозапись занятия 25.10.2016.
The NoSQL movement и основные свойства NoSQL БД
- The NoSQL Movement
- ACID vs BASE, О согласованности в конечном счёте
- Консенсус в распределённых вычислительных системах
- «Теорема» CAP
- «Теорема» PACELC
Доступны слайды и видеозапись занятия 01.11.2016.
Нереляционные СУБД
- Графовые
- Логические
- Ключ-значение
- Документо-ориентированные
- Колоночные
Доступны слайды и аудиозапись занятия 09.11.2016:
можно прослушать и
скачать.
Паттерны и технологии
Технологии
- ФС кластеров
Паттерны
- GRID
- Map-Reduce
- Pregel
Доступны слайды и видеозаписи занятий 15.11.2016 и 22.11.2016.
Использование NoSQL СУБД
Простой агрегирующий анализ обработанных данных с использованием MongoDB. Практическое занятие.
- Вспомогательные технологии
- Получение и первичная обработка данных
- Импорт данных
- Анализ данных
- Хранимый JavaScript в MongoDB
- MapReduce
- Результаты
Доступны слайды, видеозапись занятия 29.11.2016,
а также исходный код примера MapReduce для MongoDB.
Распределённая обработка данных
Простая вычислительная задача «с нуля»
- Краткий экскурс в выбранную платформу, на выбор:
- Akka (Scala)
- Erlang (выбран)
- Microsoft Orleans
- Самостоятельно реализуем GRID
- Решение одной из предложенных задач методом грубой или не очень грубой силы
Доступны слайды и видеозапись занятия 06.12.2016,
а также исходный код примера Bruteforce ZIP password для Erlang.
Инженерия ПО и процесса производства ПО
Дискуссия
А NoSQL ли?.. Может что-нибудь на основе PostgreSQL? =)
- https://jaxenter.com/nosql-vs-postgres-121967.html
- http://www.aptuz.com/blog/is-postgres-nosql-database-better-than-mongodb/
- https://habrahabr.ru/post/253017/
Доступны слайды и видеозапись занятия 13.12.2016.
Андеграунд
Бонус
- Добросовестность сервисов и лояльность пользователей; совесть — лучший котнролёр; что попало в интернет — остаётся там навсегда
- ZeroNet, FreeNet, IPFS
- «Правильные» мессенджеры — XMPP, Matrix, Tox…
- Blockchain и те, кто из него произошёл
- Изоляция: две сети в «ящиках»; deaddrops
Доступны слайды и видеозапись занятия 13.12.2016.
Доклад на семинаре кафедры системного программирования
Содержание курса и postmortem
Доступны слайды
Список литературы
… и не только литературы
- Christof Strauch NoSQL Databases
- Michael Stonebraker Errors in Database Systems, Eventual Consistency, and the CAP Theorem. BLOG@CACM, April 5, 2010.
Перевод С.Д. Кузнецова, ИСП РАН
- Новиков Б.А., Домбровская Г.Р. Настройка приложений баз данных. БХВ-Петербург, 348 С., 2012. Открыто доступна развёрнутая аннотация
- Seth Gilbert, Nancy Lynch. Brewer’s Conjecture and the Feasibility of Consistent Available Partition-Tolerant Web Services. In ACM SIGACT News, 2002
- Daniel J. Abadi. Consistency Tradeoffs in Modern Distributed Database System Design, Yale University, 2012
- Ian Robinson, Jim Webber, Emil Eifrem. Graph Databases, O’Reilly Media, 2013
- Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters, OSDI, 2004
- Toby Segaran. Programming Collective Intelligence, O’Reilly Media, 2007
- Grzegorz Malewicz, Matthew H. Austern, Aart J.C Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski. Pregel: A System for Large-Scale Graph Processing. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of data (SIGMOD ‘10). ACM, New York, NY, USA, 135-146. DOI=http://dx.doi.org/10.1145/1807167.1807184
- Fred Hébert. Learn You Some Erlang for Great Good, 2013
- Суровский Евгений. Очень большой Postgres, 2015