Содержание
- + Методалогии разработки ПО
-
+
Проектирование систем
- + API
- + UML
- + Интеграции
- + Моделирование данных
- + Представление данных
- BPMN
- C4 model
- Domain Driven Design
- EPC
- IDEF0
- Архитектор
- Архитектура
- Интерфейс
- Карта экосистемы
- Когда стоит выбирать микросервисы
- Контекстная диаграмма
- Ролевая модель
- Проектирование систем
- + Развёртывание
-
+
Разработка
- + Git
- + Linux OS
- + Mac OS
- + Подходы организации кода
- + Языки программирования
- Виды программирования
- Интерпритатор
- Компилятор
- Разработка
-
+
Сеть
- + OSI
- + Защита
- CDN
- ngrok
- Сеть
- + Системный анализ
- + Требования
- – Хранение данных
- + Языки разметки
Транзакция - набор операций, которые выполняются, как неразделимая часть.
Если хотябы 1 ошибка - то все операции отменяются
Приостановка действия с одной операцией, пока не будет одной активной обработки.
Аномалии
Проблема грязного чтения (Dirty Read)
Грязное чтение связано с чтением незафиксированных данных
Проблема неповторяющегося чтения (Non-Repeatable Read)
Неповторяющееся чтение связано с изменением уже прочитанных данных
Фантомное чтение (Phantom Read)
Фантомное чтение связано с изменением набора строк, соответствующих условию запроса
Уровни изоляции
Уровень изолированности - значение, показывающее степень видимости изменений 1й транзакции, другой транзакции
READ UNCOMMITED
Изоляции нет
READ COMMITED
Неповторяющееся чтение
По умолчанию в PostgreSQL Oracle
REPEATABLE READ
Повторное чтение
Пока транзакция не изменится - никто параллельно не может изменять или удалять строкие которые транзакция уже прочитала
Фантомное чтение
SERIALIZABLE
Блокировка всей таблицы или строк
Плохо с производительностью
MVCC
MVCC - Multiversion Concurrency Control – метод управления конкурентным доступом к данным. Позволяет нескольким транзакциям работать с данными одновременно
Каждая транзакция работает со своей версией данных
Многоверсионность
Не меняет данные, а создаёт версии
Указывается какая транзакция создала
Переодически удаляет мусор
Изоляция транзакций
Транзакция видит только те данные, что были заблокированы
Минимизирует блокировки
Чтение данных не блокирует запись, а запись не блокирует чтение
#Управление конфликтом
Конфликты транзакций решаются при коммите
Можно откатить транзакцию, которая не может выполнится