vault backup: 2024-07-02 18:07:53

This commit is contained in:
Struchkov Mark 2024-07-02 18:07:53 +03:00
parent 813cea5421
commit a119b71a3f
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
8 changed files with 94 additions and 129 deletions

View File

@ -244,24 +244,6 @@
"zero-link": {} "zero-link": {}
}, },
"navigationHistory": [ "navigationHistory": [
"meta/files/Архитектура. Виджет на сайте.excalidraw.md",
"meta/files/telegram-cloud-photo-size-2-5296555301971021735-y.jpg",
"meta/files/screen 975.png",
"meta/files/Pasted image 20240513150231.png",
"meta/files/mikrovolnovka_na_kuhne2023-2.jpg",
"notes/Эротическая игра в телеграме для пар.md",
"meta/files/Архитектура. Телефония РГС.md",
"meta/files/screen 735.png",
"meta/files/Pasted image 20230927184759.png",
"meta/files/Pasted Image 20240508102418_682.jpg",
"meta/files/Схема интеграции с Naomen CC и Edna через шину.excalidraw.md",
"meta/files/Снимок экрана 2024-01-19 в 13.02.19.png",
"meta/files/first-3.jpg",
"meta/files/Pasted Image 20240115132340_682.png",
"meta/files/Схема интеграции с Edna без шины.excalidraw.md",
"meta/files/Stepan-Ismakaev-getmatch.pdf",
"meta/files/Pasted image 20231106154846.png",
"meta/files/Pasted Image 20240328095324_138.png",
"meta/files/Pasted Image 20240115132233_924.png", "meta/files/Pasted Image 20240115132233_924.png",
"meta/files/Drawing 2024-03-05 16.05.18.excalidraw.md", "meta/files/Drawing 2024-03-05 16.05.18.excalidraw.md",
"meta/files/Pasted Image 20230719131452_968.png", "meta/files/Pasted Image 20230719131452_968.png",
@ -293,7 +275,25 @@
"_inbox/2024-03-10 1710054825.md", "_inbox/2024-03-10 1710054825.md",
"meta/files/image (2).png", "meta/files/image (2).png",
"orphaned files output.md", "orphaned files output.md",
"Home.md" "source/статьи/Статья. Т-Ж. Как сделать ремонт квартиры.md",
"projects/План проекта бота.md",
"projects/Личная айдентика.md",
"projects/Выступление на конференции Jpoint.md",
"projects/Дом Дурачок 2.0.md",
"projects/Ремонт квартиры/Идеи для ремонта.md",
"projects/Здоровым к 30.md",
"projects/Проект. Дом Дурачок 2.0.md",
"projects/Ремонт квартиры/Проект. Ремонт квартиры.md",
"projects/Проект. Здоровым к 30.md",
"Проекты.md",
"_inbox/Транзакция БД.md",
"_inbox/Блокировки.md",
"_inbox/Deadlock.md",
"_inbox/Read uncommitted.md",
"_inbox/Read committed.md",
"_inbox/Repeatable read.md",
"Home.md",
"_inbox/Serializable.md"
], ],
"allowOntologySuggester": true, "allowOntologySuggester": true,
"ontologySuggesterParentTrigger": "::p", "ontologySuggesterParentTrigger": "::p",

View File

@ -24,24 +24,24 @@
"unresolvedLinks": false, "unresolvedLinks": false,
"recentFilesStore": [ "recentFilesStore": [
{ {
"filepath": "_inbox/Read uncommitted.md", "filepath": "_inbox/Serializable.md",
"timestamp": 1719932562185 "timestamp": 1719932863763
}, },
{ {
"filepath": "_inbox/Deadlock.md", "filepath": "excalibrain.md",
"timestamp": 1719932139770 "timestamp": 1719932863485
},
{
"filepath": "_inbox/Блокировки.md",
"timestamp": 1719932133087
},
{
"filepath": "_inbox/Транзакция БД.md",
"timestamp": 1719932031125
}, },
{ {
"filepath": "Home.md", "filepath": "Home.md",
"timestamp": 1719905943843 "timestamp": 1719932797895
},
{
"filepath": "_inbox/Repeatable read.md",
"timestamp": 1719932751701
},
{
"filepath": "_inbox/Read committed.md",
"timestamp": 1719932676552
} }
], ],
"bookmarkedFileStore": [], "bookmarkedFileStore": [],

View File

@ -1,5 +1,25 @@
{ {
"recentFiles": [ "recentFiles": [
{
"basename": "Serializable",
"path": "_inbox/Serializable.md"
},
{
"basename": "excalibrain",
"path": "excalibrain.md"
},
{
"basename": "Home",
"path": "Home.md"
},
{
"basename": "Repeatable read",
"path": "_inbox/Repeatable read.md"
},
{
"basename": "Read committed",
"path": "_inbox/Read committed.md"
},
{ {
"basename": "Read uncommitted", "basename": "Read uncommitted",
"path": "_inbox/Read uncommitted.md" "path": "_inbox/Read uncommitted.md"
@ -16,10 +36,6 @@
"basename": "Транзакция БД", "basename": "Транзакция БД",
"path": "_inbox/Транзакция БД.md" "path": "_inbox/Транзакция БД.md"
}, },
{
"basename": "Home",
"path": "Home.md"
},
{ {
"basename": "Проекты", "basename": "Проекты",
"path": "Проекты.md" "path": "Проекты.md"
@ -183,22 +199,6 @@
{ {
"basename": "Кэширование в приложении", "basename": "Кэширование в приложении",
"path": "_inbox/Кэширование в приложении.md" "path": "_inbox/Кэширование в приложении.md"
},
{
"basename": "Content Delivery Network",
"path": "knowledge/dev/network/Content Delivery Network.md"
},
{
"basename": "Кэширование на стороне браузера",
"path": "_inbox/Кэширование на стороне браузера.md"
},
{
"basename": "Vitess",
"path": "_inbox/Vitess.md"
},
{
"basename": "Шардирование в БД",
"path": "_inbox/Шардирование в БД.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],

View File

@ -9,14 +9,19 @@ zero-link:
parents: parents:
- "[[Уровни изоляций транзакций БД]]" - "[[Уровни изоляций транзакций БД]]"
linked: linked:
next: "[[Repeatable read]]"
prev: "[[Read uncommitted]]"
--- ---
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20 **Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20
Реализация: **Реализация:**
- Использование [Блокировки](Блокировки.md). Устанавливаем блокировку строк на запись - Использование [Блокировки](Блокировки.md). Устанавливаем блокировку строк на запись
- Сохраняем старые значения строк до коммита изменений. Отдаем их другим транзакциям. ([MVCC](MVCC.md)) - Сохраняем старые значения строк до коммита изменений. Отдаем их другим транзакциям. ([MVCC](MVCC.md))
Проблемы: **Минусы:**
- Большое потребление RAM, так как создает множество временных сущностей.
**Проблемы:**
- [Неповторяющееся чтение](Неповторяющееся%20чтение.md) - [Неповторяющееся чтение](Неповторяющееся%20чтение.md)
- [Фантомное чтение](Фантомное%20чтение.md) - [Фантомное чтение](Фантомное%20чтение.md)
- [Потерянное обновление](Потерянное%20обновление.md) - [Потерянное обновление](Потерянное%20обновление.md)

View File

@ -9,6 +9,7 @@ zero-link:
parents: parents:
- "[[Уровни изоляций транзакций БД]]" - "[[Уровни изоляций транзакций БД]]"
linked: linked:
next: "[[Read committed]]"
--- ---
**Read uncommitted (чтение незафиксированных данных).** Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций. ^52421e **Read uncommitted (чтение незафиксированных данных).** Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций. ^52421e

View File

@ -10,6 +10,8 @@ zero-link:
parents: parents:
- "[[Уровни изоляций транзакций БД]]" - "[[Уровни изоляций транзакций БД]]"
linked: linked:
prev: "[[Read committed]]"
next: "[[Serializable]]"
--- ---
**Repeatable read (повторяющееся чтение).** Уровень, при котором читающая транзакция «не видит» изменения данных, которые были ею ранее прочитаны. При этом никакая другая транзакция не может изменять данные, читаемые текущей транзакцией, пока та не окончена. ^38dd4b **Repeatable read (повторяющееся чтение).** Уровень, при котором читающая транзакция «не видит» изменения данных, которые были ею ранее прочитаны. При этом никакая другая транзакция не может изменять данные, читаемые текущей транзакцией, пока та не окончена. ^38dd4b
@ -23,12 +25,12 @@ linked:
Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова. Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова.
Реализация: **Реализация:**
- [Блокировки](Блокировки.md). Чтение не блокирует запись, а запись не блокирует чтение. - [Блокировки](Блокировки.md). Чтение не блокирует запись, а запись не блокирует чтение.
- [MVCC](MVCC.md) - [MVCC](MVCC.md)
Особенности **Особенности:**
- В [PostgreSQL](00%20PostgreSQL.md) на уровне `REPEATABLE_READ` также предотвращены фантомные чтения. - В [PostgreSQL](00%20PostgreSQL.md) на уровне `REPEATABLE_READ` также предотвращены фантомные чтения.
Проблемы: **Проблемы:**
- [Фантомное чтение](Фантомное%20чтение.md) - [Фантомное чтение](Фантомное%20чтение.md)

View File

@ -9,5 +9,9 @@ zero-link:
parents: parents:
- "[[Уровни изоляций транзакций БД]]" - "[[Уровни изоляций транзакций БД]]"
linked: linked:
prev: "[[Repeatable read]]"
--- ---
**Serializable (упорядочиваемость).** Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения». ^fdb385 **Serializable (упорядочиваемость).** Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения». ^fdb385
**Минусы:**
- Самый медленный уровень изоляции

View File

@ -11,77 +11,30 @@ tags: [excalidraw]
--- ---
# Text Elements # Excalidraw Data
## Text Elements
Open a document in another pane and click it to get started. Open a document in another pane and click it to get started.
For the best experience enable 'Open in adjacent pane' For the best experience enable 'Open in adjacent pane'
in Excalidraw settings under 'Links and Transclusion'. ^4mylk7KK in Excalidraw settings under 'Links and Transclusion'. ^4mylk7KK
%% %%
# Drawing ## Drawing
```json ```compressed-json
{ N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebTiAdho6IIR9BA4oZm4AbXAwUDAi6HhxdCgsKGSiyEYWdi40AGZ+YrrWTgA5TjFuAEYATgAOAAYBgDYmgBYmvtbIQg5iLG4I
"type": "excalidraw",
"version": 2, XBHq4sJmABFUiuJuADMCMPmIElWp/Rh8AGsEgGlHzcgjwnx8AGVYYNXJXDYDSBV4QZhQUhsO4IADqJHU/XO4Mh0J+tzKYLYHlBkL8kg44WyaDm+UgbDggLUMH6IxG52syj+aDppIgmG4zhG2hG4x4AFZztTmUiIVCEABhLFsUirCiSNRIc6aQF3ZS4paS/DS1YQ6zMCmBTKgijwyTcBIjJraPr886SBCEZTSbgTJEIBCHNBTKY8AbnNXCOAASWIR
"source": "https://excalidraw.com",
"elements": [ NQOQAuucjuR0iHuBwhJ9zuriATmGHE8nWZphEsAKLBdKZMOR85CODEXAHfoJQYDJo8IaTcZ8v2sogcO4JpP4c5a7DQz2oE74M6so6cKBfQhGMo8Fk1CCTzIAMVw+g+QtQLVZFUwVQkAHlEBxULhUMQ2NghMWoKhFueOGx1ExUBSCU/iKhsERBw/7ygNhUGUBB73BXBSAObQAB0ODg1dpVQV9UE0cJ7ywRBSEIDIxFQDJcE0YJUAAchPDIHzPXBiA
{
"type": "text", AK0BDJ7w/BASLgx98xwAgSHIChUDCGRFmUZhUCEJY3xIgAZRY7iE6xvwAFXIDhmF/IQOg4EjtBxSg5MqVZyKoy9r1vBjKKfF97VId9rAQL8fz/O4AOQ4DQPAqIoI9WD4I4RDLJQtDwXwzAsJwjg8IIoibLI09TOouixEyKyCRYjg2I4jxuN4sCoAEoSROWSyJKkmSllQBS9RUtSNNBfcoAAQSIZRGnQeKKhlc46my9x6sdJroHJUE9EyXBFiYeM0
"version": 1,
"versionNonce": 423577018, CzPtWWlR1FgIHSDz06KLyvG87xi59X0spjbN/cwHLUJyQLA3i3OguCEKQvz0MC4LcJs8LiKiijH1i+iEqY5LUvcLjKEy/iOEE4TRIKySu2K+TFOU3xKs0+khCAgAlcJZzKCEhAQfsRoACQdJ1D1QPp4nyABfcAozoXA4DgH5qzKQpIFfdJVga51WgYHCKAAIRVAM8s1bUJEkZh8AACgXIZqFQUYAFJJZ4JppYASk2CAb1IQ0oCDCp9B+FEJSlGUJ
"isDeleted": false,
"id": "4mylk7KK", AAYlpU2NjZtWNa1tJucHXmNQNnVIYNBiVcthjrf0VcPm+X4MQBIEREVfJVZEK3td1sU4WIBE0D4EP3cyT3I9RP3VkEbELbDj3tYR4QnXTMMSWKRPNe1k9KVgGlF0gUvPcQtcNy3REE+zpPtYb6cUf6cYs/VnO0nmuqGt64IjiqPvw7SGmoNq9W2DlEJhwmyeB/0fMljnyFF+o1ZIO3lXlMhT4AA1uEbbRpnGPo+SaIYpmv2+hmLgRsGP/AAE1uAf
"fillStyle": "hachure",
"strokeWidth": 1, gZtHGBIfQJCGPfR+d82ZGDYAYbg9NagEHRtwLkrYSar3bmkPOeVC6rFTCrNUJAZxzh7NmYouDiD80NqgGBEBOZYmHBAI2fR/7jHFLVVcq5QRI2UEmSCqwTarj5H0IYLC2HIITgbAACgQLKdNiYoOnKKaEJ5sqcEzL2NmcBAhmGEMwAA4thYg+CygrxDjGDcCAkbAwEtA1kD0PTcDRhjVku04B2NIOjc4HBTEuLcVNeGnZUauIQCI4odgaIIGwFkL
"strokeStyle": "solid",
"roughness": 1, 4Hi4AAFk2DLA3oRYIw5RxhHADIug7xghhmAKTYmQA===
"opacity": 100,
"angle": 0,
"x": 0,
"y": 0,
"strokeColor": "white",
"backgroundColor": "transparent",
"width": 703,
"height": 96,
"seed": 4429,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1650784785611,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 3,
"text": "Open a document in another pane and click it to get started.\n\nFor the best experience enable 'Open in adjacent pane'\nin Excalidraw settings under 'Links and Transclusion'.",
"rawText": "Open a document in another pane and click it to get started.\n\nFor the best experience enable 'Open in adjacent pane'\nin Excalidraw settings under 'Links and Transclusion'.",
"baseline": 91,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Open a document in another pane and click it to get started.\n\nFor the best experience enable 'Open in adjacent pane'\nin Excalidraw settings under 'Links and Transclusion'."
}
],
"appState": {
"theme": "dark",
"viewBackgroundColor": "hsl(208, 80%, 23%)",
"currentItemStrokeColor": "#000000",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "hachure",
"currentItemStrokeWidth": 2,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 16,
"currentItemTextAlign": "left",
"currentItemStrokeSharpness": "sharp",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemLinearStrokeSharpness": "round",
"gridSize": null,
"colorPalette": {}
},
"files": {}
}
``` ```
%% %%