vault backup: 2024-06-20 21:19:23

This commit is contained in:
Struchkov Mark 2024-06-20 21:19:23 +03:00
parent 3c416c7b73
commit 56fadc3605
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
3 changed files with 17 additions and 8 deletions

View File

@ -23,6 +23,10 @@
"markdownOnly": false, "markdownOnly": false,
"unresolvedLinks": false, "unresolvedLinks": false,
"recentFilesStore": [ "recentFilesStore": [
{
"filepath": "_inbox/Потерянное обновление.md",
"timestamp": 1718907466550
},
{ {
"filepath": "_inbox/MVCC.md", "filepath": "_inbox/MVCC.md",
"timestamp": 1718902462965 "timestamp": 1718902462965
@ -38,10 +42,6 @@
{ {
"filepath": "_inbox/Блокировки.md", "filepath": "_inbox/Блокировки.md",
"timestamp": 1718901922212 "timestamp": 1718901922212
},
{
"filepath": "_inbox/Deadlock.md",
"timestamp": 1718901920086
} }
], ],
"bookmarkedFileStore": [], "bookmarkedFileStore": [],

View File

@ -1,5 +1,9 @@
{ {
"recentFiles": [ "recentFiles": [
{
"basename": "Потерянное обновление",
"path": "_inbox/Потерянное обновление.md"
},
{ {
"basename": "MVCC", "basename": "MVCC",
"path": "_inbox/MVCC.md" "path": "_inbox/MVCC.md"
@ -48,10 +52,6 @@
"basename": "Фантомное чтение", "basename": "Фантомное чтение",
"path": "_inbox/Фантомное чтение.md" "path": "_inbox/Фантомное чтение.md"
}, },
{
"basename": "Потерянное обновление",
"path": "_inbox/Потерянное обновление.md"
},
{ {
"basename": "Pasted image 20240620094127", "basename": "Pasted image 20240620094127",
"path": "meta/files/Pasted image 20240620094127.png" "path": "meta/files/Pasted image 20240620094127.png"

View File

@ -93,6 +93,15 @@ public class LostUpdateExample {
![](Pasted%20image%2020240619201135.png) ![](Pasted%20image%2020240619201135.png)
Защита от потерянных обновлений:
- Атомарные операции
- Явные блокировки
```
SELECT * FROM tb1
WHERE id = 10 FOR UPDATE
```
- Автоматическое обнаружение
- CAS операции
## Дополнительные материалы ## Дополнительные материалы
- [Пример на Java](https://github.com/Example-uPagge/transactional/blob/master/jdbc-transaction/src/main/java/dev/struchkov/example/transaction/problems/LostUpdateExample.java) - [Пример на Java](https://github.com/Example-uPagge/transactional/blob/master/jdbc-transaction/src/main/java/dev/struchkov/example/transaction/problems/LostUpdateExample.java)
- ![](Pasted%20image%2020240620094127.png) - ![](Pasted%20image%2020240620094127.png)