vault backup: 2024-06-20 21:19:23
This commit is contained in:
parent
3c416c7b73
commit
56fadc3605
8
.obsidian/plugins/home-tab/data.json
vendored
8
.obsidian/plugins/home-tab/data.json
vendored
@ -23,6 +23,10 @@
|
||||
"markdownOnly": false,
|
||||
"unresolvedLinks": false,
|
||||
"recentFilesStore": [
|
||||
{
|
||||
"filepath": "_inbox/Потерянное обновление.md",
|
||||
"timestamp": 1718907466550
|
||||
},
|
||||
{
|
||||
"filepath": "_inbox/MVCC.md",
|
||||
"timestamp": 1718902462965
|
||||
@ -38,10 +42,6 @@
|
||||
{
|
||||
"filepath": "_inbox/Блокировки.md",
|
||||
"timestamp": 1718901922212
|
||||
},
|
||||
{
|
||||
"filepath": "_inbox/Deadlock.md",
|
||||
"timestamp": 1718901920086
|
||||
}
|
||||
],
|
||||
"bookmarkedFileStore": [],
|
||||
|
@ -1,5 +1,9 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "Потерянное обновление",
|
||||
"path": "_inbox/Потерянное обновление.md"
|
||||
},
|
||||
{
|
||||
"basename": "MVCC",
|
||||
"path": "_inbox/MVCC.md"
|
||||
@ -48,10 +52,6 @@
|
||||
"basename": "Фантомное чтение",
|
||||
"path": "_inbox/Фантомное чтение.md"
|
||||
},
|
||||
{
|
||||
"basename": "Потерянное обновление",
|
||||
"path": "_inbox/Потерянное обновление.md"
|
||||
},
|
||||
{
|
||||
"basename": "Pasted image 20240620094127",
|
||||
"path": "meta/files/Pasted image 20240620094127.png"
|
||||
|
@ -93,6 +93,15 @@ public class LostUpdateExample {
|
||||
|
||||
![](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)
|
||||
- ![](Pasted%20image%2020240620094127.png)
|
Loading…
Reference in New Issue
Block a user