diff --git a/.obsidian/plugins/excalibrain/data.json b/.obsidian/plugins/excalibrain/data.json index 564a9293..3db7bb7b 100644 --- a/.obsidian/plugins/excalibrain/data.json +++ b/.obsidian/plugins/excalibrain/data.json @@ -244,24 +244,6 @@ "zero-link": {} }, "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/Drawing 2024-03-05 16.05.18.excalidraw.md", "meta/files/Pasted Image 20230719131452_968.png", @@ -293,7 +275,25 @@ "_inbox/2024-03-10 1710054825.md", "meta/files/image (2).png", "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, "ontologySuggesterParentTrigger": "::p", diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 45e3db84..1a181e42 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -24,24 +24,24 @@ "unresolvedLinks": false, "recentFilesStore": [ { - "filepath": "_inbox/Read uncommitted.md", - "timestamp": 1719932562185 + "filepath": "_inbox/Serializable.md", + "timestamp": 1719932863763 }, { - "filepath": "_inbox/Deadlock.md", - "timestamp": 1719932139770 - }, - { - "filepath": "_inbox/Блокировки.md", - "timestamp": 1719932133087 - }, - { - "filepath": "_inbox/Транзакция БД.md", - "timestamp": 1719932031125 + "filepath": "excalibrain.md", + "timestamp": 1719932863485 }, { "filepath": "Home.md", - "timestamp": 1719905943843 + "timestamp": 1719932797895 + }, + { + "filepath": "_inbox/Repeatable read.md", + "timestamp": 1719932751701 + }, + { + "filepath": "_inbox/Read committed.md", + "timestamp": 1719932676552 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index d7627730..d5e05664 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,5 +1,25 @@ { "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", "path": "_inbox/Read uncommitted.md" @@ -16,10 +36,6 @@ "basename": "Транзакция БД", "path": "_inbox/Транзакция БД.md" }, - { - "basename": "Home", - "path": "Home.md" - }, { "basename": "Проекты", "path": "Проекты.md" @@ -183,22 +199,6 @@ { "basename": "Кэширование в приложении", "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": [], diff --git a/_inbox/Read committed.md b/_inbox/Read committed.md index 64d0dd26..13697d59 100644 --- a/_inbox/Read committed.md +++ b/_inbox/Read committed.md @@ -8,15 +8,20 @@ zero-link: - "[[00 Базы Данных]]" parents: - "[[Уровни изоляций транзакций БД]]" -linked: +linked: +next: "[[Repeatable read]]" +prev: "[[Read uncommitted]]" --- **Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. ^11df20 -Реализация: +**Реализация:** - Использование [Блокировки](Блокировки.md). Устанавливаем блокировку строк на запись - Сохраняем старые значения строк до коммита изменений. Отдаем их другим транзакциям. ([MVCC](MVCC.md)) -Проблемы: +**Минусы:** +- Большое потребление RAM, так как создает множество временных сущностей. + +**Проблемы:** - [Неповторяющееся чтение](Неповторяющееся%20чтение.md) - [Фантомное чтение](Фантомное%20чтение.md) - [Потерянное обновление](Потерянное%20обновление.md) \ No newline at end of file diff --git a/_inbox/Read uncommitted.md b/_inbox/Read uncommitted.md index fdfc0570..0187dcd4 100644 --- a/_inbox/Read uncommitted.md +++ b/_inbox/Read uncommitted.md @@ -8,7 +8,8 @@ zero-link: - "[[00 Базы Данных]]" parents: - "[[Уровни изоляций транзакций БД]]" -linked: +linked: +next: "[[Read committed]]" --- **Read uncommitted (чтение незафиксированных данных).** Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций. ^52421e diff --git a/_inbox/Repeatable read.md b/_inbox/Repeatable read.md index da1f1e63..97036817 100644 --- a/_inbox/Repeatable read.md +++ b/_inbox/Repeatable read.md @@ -9,7 +9,9 @@ zero-link: - "[[00 Базы Данных]]" parents: - "[[Уровни изоляций транзакций БД]]" -linked: +linked: +prev: "[[Read committed]]" +next: "[[Serializable]]" --- **Repeatable read (повторяющееся чтение).** Уровень, при котором читающая транзакция «не видит» изменения данных, которые были ею ранее прочитаны. При этом никакая другая транзакция не может изменять данные, читаемые текущей транзакцией, пока та не окончена. ^38dd4b @@ -23,12 +25,12 @@ linked: Но возникает закономерный вопрос: что делать с ошибкой, ведь мы хотели выполнить транзакцию, которая свалилась с исключением. Самое простое, что можно сделать — это повторить выполнение второй транзакции с новыми данными. Если исключение возникнет опять, то повторить снова. -Реализация: +**Реализация:** - [Блокировки](Блокировки.md). Чтение не блокирует запись, а запись не блокирует чтение. - [MVCC](MVCC.md) -Особенности +**Особенности:** - В [PostgreSQL](00%20PostgreSQL.md) на уровне `REPEATABLE_READ` также предотвращены фантомные чтения. -Проблемы: +**Проблемы:** - [Фантомное чтение](Фантомное%20чтение.md) \ No newline at end of file diff --git a/_inbox/Serializable.md b/_inbox/Serializable.md index 9e16f77e..3693c7f5 100644 --- a/_inbox/Serializable.md +++ b/_inbox/Serializable.md @@ -8,6 +8,10 @@ zero-link: - "[[00 Базы Данных]]" parents: - "[[Уровни изоляций транзакций БД]]" -linked: +linked: +prev: "[[Repeatable read]]" --- -**Serializable (упорядочиваемость).** Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения». ^fdb385 \ No newline at end of file +**Serializable (упорядочиваемость).** Самый высокий уровень изолированности; транзакции полностью изолируются друг от друга, каждая выполняется так, как будто параллельных транзакций не существует. Только на этом уровне параллельные транзакции не подвержены эффекту «фантомного чтения». ^fdb385 + +**Минусы:** +- Самый медленный уровень изоляции \ No newline at end of file diff --git a/excalibrain.md b/excalibrain.md index 5e690fcc..4754bfa5 100644 --- a/excalibrain.md +++ b/excalibrain.md @@ -11,77 +11,30 @@ tags: [excalidraw] --- -# Text Elements +# Excalidraw Data +## Text Elements Open a document in another pane and click it to get started. For the best experience enable 'Open in adjacent pane' in Excalidraw settings under 'Links and Transclusion'. ^4mylk7KK %% -# Drawing -```json -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "type": "text", - "version": 1, - "versionNonce": 423577018, - "isDeleted": false, - "id": "4mylk7KK", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "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": {} -} +## Drawing +```compressed-json +N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebTiAdho6IIR9BA4oZm4AbXAwUDAi6HhxdCgsKGSiyEYWdi40AGZ+YrrWTgA5TjFuAEYATgAOAAYBgDYmgBYmvtbIQg5iLG4I + +XBHq4sJmABFUiuJuADMCMPmIElWp/Rh8AGsEgGlHzcgjwnx8AGVYYNXJXDYDSBV4QZhQUhsO4IADqJHU/XO4Mh0J+tzKYLYHlBkL8kg44WyaDm+UgbDggLUMH6IxG52syj+aDppIgmG4zhG2hG4x4AFZztTmUiIVCEABhLFsUirCiSNRIc6aQF3ZS4paS/DS1YQ6zMCmBTKgijwyTcBIjJraPr886SBCEZTSbgTJEIBCHNBTKY8AbnNXCOAASWIR + +NQOQAuucjuR0iHuBwhJ9zuriATmGHE8nWZphEsAKLBdKZMOR85CODEXAHfoJQYDJo8IaTcZ8v2sogcO4JpP4c5a7DQz2oE74M6so6cKBfQhGMo8Fk1CCTzIAMVw+g+QtQLVZFUwVQkAHlEBxULhUMQ2NghMWoKhFueOGx1ExUBSCU/iKhsERBw/7ygNhUGUBB73BXBSAObQAB0ODg1dpVQV9UE0cJ7ywRBSEIDIxFQDJcE0YJUAAchPDIHzPXBiA + +AK0BDJ7w/BASLgx98xwAgSHIChUDCGRFmUZhUCEJY3xIgAZRY7iE6xvwAFXIDhmF/IQOg4EjtBxSg5MqVZyKoy9r1vBjKKfF97VId9rAQL8fz/O4AOQ4DQPAqIoI9WD4I4RDLJQtDwXwzAsJwjg8IIoibLI09TOouixEyKyCRYjg2I4jxuN4sCoAEoSROWSyJKkmSllQBS9RUtSNNBfcoAAQSIZRGnQeKKhlc46my9x6sdJroHJUE9EyXBFiYeM0 + +CzPtWWlR1FgIHSDz06KLyvG87xi59X0spjbN/cwHLUJyQLA3i3OguCEKQvz0MC4LcJs8LiKiijH1i+iEqY5LUvcLjKEy/iOEE4TRIKySu2K+TFOU3xKs0+khCAgAlcJZzKCEhAQfsRoACQdJ1D1QPp4nyABfcAozoXA4DgH5qzKQpIFfdJVga51WgYHCKAAIRVAM8s1bUJEkZh8AACgXIZqFQUYAFJJZ4JppYASk2CAb1IQ0oCDCp9B+FEJSlGUJ + +AAYlpU2NjZtWNa1tJucHXmNQNnVIYNBiVcthjrf0VcPm+X4MQBIEREVfJVZEK3td1sU4WIBE0D4EP3cyT3I9RP3VkEbELbDj3tYR4QnXTMMSWKRPNe1k9KVgGlF0gUvPcQtcNy3REE+zpPtYb6cUf6cYs/VnO0nmuqGt64IjiqPvw7SGmoNq9W2DlEJhwmyeB/0fMljnyFF+o1ZIO3lXlMhT4AA1uEbbRpnGPo+SaIYpmv2+hmLgRsGP/AAE1uAf + +gZtHGBIfQJCGPfR+d82ZGDYAYbg9NagEHRtwLkrYSar3bmkPOeVC6rFTCrNUJAZxzh7NmYouDiD80NqgGBEBOZYmHBAI2fR/7jHFLVVcq5QRI2UEmSCqwTarj5H0IYLC2HIITgbAACgQLKdNiYoOnKKaEJ5sqcEzL2NmcBAhmGEMwAA4thYg+CygrxDjGDcCAkbAwEtA1kD0PTcDRhjVku04B2NIOjc4HBTEuLcVNeGnZUauIQCI4odgaIIGwFkL + +4Hi4AAFk2DLA3oRYIw5RxhHADIug7xghhmAKTYmQA=== ``` -%% +%% \ No newline at end of file