vault backup: 2024-06-19 19:53:52

This commit is contained in:
Struchkov Mark 2024-06-19 19:53:52 +03:00
parent 6b16ad232e
commit 55c84d1313
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
7 changed files with 61 additions and 34 deletions

View File

@ -24,24 +24,24 @@
"unresolvedLinks": false, "unresolvedLinks": false,
"recentFilesStore": [ "recentFilesStore": [
{ {
"filepath": "_inbox/2024-06-19 1718815670.md", "filepath": "_inbox/Грязное чтение.md",
"timestamp": 1718815671002 "timestamp": 1718816024825
}, },
{ {
"filepath": "knowledge/dev/database/Свойства транзакции БД (ACID).md", "filepath": "_inbox/Read uncommitted.md",
"timestamp": 1718814979937 "timestamp": 1718816022761
}, },
{ {
"filepath": "notes/Собеседования/Вопросы для собеседование Java.md", "filepath": "knowledge/dev/database/Уровни изоляций транзакций БД.md",
"timestamp": 1718814799016 "timestamp": 1718816010418
}, },
{ {
"filepath": "knowledge/dev/database/Проблемы при параллельном выполнении нескольких транзакций.md", "filepath": "knowledge/dev/database/Проблемы при параллельном выполнении нескольких транзакций.md",
"timestamp": 1718814669402 "timestamp": 1718815991051
}, },
{ {
"filepath": "_inbox/Транзакция БД.md", "filepath": "_inbox/Транзакция БД.md",
"timestamp": 1718814668262 "timestamp": 1718815984227
} }
], ],
"bookmarkedFileStore": [], "bookmarkedFileStore": [],

View File

@ -1,5 +1,29 @@
{ {
"recentFiles": [ "recentFiles": [
{
"basename": "Грязное чтение",
"path": "_inbox/Грязное чтение.md"
},
{
"basename": "Read uncommitted",
"path": "_inbox/Read uncommitted.md"
},
{
"basename": "Уровни изоляций транзакций БД",
"path": "knowledge/dev/database/Уровни изоляций транзакций БД.md"
},
{
"basename": "Проблемы при параллельном выполнении нескольких транзакций",
"path": "knowledge/dev/database/Проблемы при параллельном выполнении нескольких транзакций.md"
},
{
"basename": "Транзакция БД",
"path": "_inbox/Транзакция БД.md"
},
{
"basename": "Memcached",
"path": "_inbox/Memcached.md"
},
{ {
"basename": "00 NoSQL", "basename": "00 NoSQL",
"path": "wiki/zero/00 NoSQL.md" "path": "wiki/zero/00 NoSQL.md"
@ -12,14 +36,6 @@
"basename": "Вопросы для собеседование Java", "basename": "Вопросы для собеседование Java",
"path": "notes/Собеседования/Вопросы для собеседование Java.md" "path": "notes/Собеседования/Вопросы для собеседование Java.md"
}, },
{
"basename": "Проблемы при параллельном выполнении нескольких транзакций",
"path": "knowledge/dev/database/Проблемы при параллельном выполнении нескольких транзакций.md"
},
{
"basename": "Транзакция БД",
"path": "_inbox/Транзакция БД.md"
},
{ {
"basename": "Микросервисы. Паттерны разработки и рефакторинга", "basename": "Микросервисы. Паттерны разработки и рефакторинга",
"path": "notes/Микросервисы. Паттерны разработки и рефакторинга.md" "path": "notes/Микросервисы. Паттерны разработки и рефакторинга.md"
@ -176,10 +192,6 @@
"basename": "Pasted image 20240617194938", "basename": "Pasted image 20240617194938",
"path": "meta/files/Pasted image 20240617194938.png" "path": "meta/files/Pasted image 20240617194938.png"
}, },
{
"basename": "Memcached",
"path": "_inbox/Memcached.md"
},
{ {
"basename": "Redis", "basename": "Redis",
"path": "_inbox/Redis.md" "path": "_inbox/Redis.md"
@ -187,18 +199,6 @@
{ {
"basename": "Fingerprint файлов", "basename": "Fingerprint файлов",
"path": "_inbox/Fingerprint файлов.md" "path": "_inbox/Fingerprint файлов.md"
},
{
"basename": "Generational Collection",
"path": "knowledge/dev/java/gc/Generational Collection.md"
},
{
"basename": "Стресс",
"path": "knowledge/human/Стресс.md"
},
{
"basename": "Репликация в MySQL",
"path": "_inbox/Репликация в MySQL.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],

View File

@ -50,5 +50,7 @@ Memcached не является надежным хранилищем воз
Для распределения нагрузки и достижения отказоустойчивости вместо одного сервера memcached используется кластер из таких серверов. Сервера, входящие в кластер, могут быть сконфигурированы с различным объемом памяти, при этом общий объем кэша будет равен сумме объемов кэшей всех memcached, входящих в кластер. Процесс memcached может быть запущен на сервере, где слабо используется процессор и не загружена до предела сеть (например, на файловом сервере). При высокой нагрузке на процессор memcached может не успевать достаточно быстро отвечать на запросы, что приводит к деградации сервиса. Для распределения нагрузки и достижения отказоустойчивости вместо одного сервера memcached используется кластер из таких серверов. Сервера, входящие в кластер, могут быть сконфигурированы с различным объемом памяти, при этом общий объем кэша будет равен сумме объемов кэшей всех memcached, входящих в кластер. Процесс memcached может быть запущен на сервере, где слабо используется процессор и не загружена до предела сеть (например, на файловом сервере). При высокой нагрузке на процессор memcached может не успевать достаточно быстро отвечать на запросы, что приводит к деградации сервиса.
При работе с кластером ключи распределяются по серверам, то есть каждый сервер обрабатывает часть общего массива ключей проекта. Отказоустойчивость следует из того факта, что в случае отказа одного из серверов ключи будут перераспределены по оставшимся серверам кластера. При этом, конечно же, содержимое отказавшего сервера будет потеряно (см. раздел «Потеря ключей»). Вслучае необходимости важные ключи можно хранить не на одном сервере, а дублировать на нескольких, так можно минимизировать последствия падения сервера за счет избыточности хранения. При работе с кластером ключи распределяются по серверам, то есть каждый сервер обрабатывает часть общего массива ключей проекта. Отказоустойчивость следует из того факта, что в случае отказа одного из серверов ключи будут перераспределены по оставшимся серверам кластера. При этом, конечно же, содержимое отказавшего сервера будет потеряно (см. раздел «Потеря ключей»). Вслучае необходимости важные ключи можно хранить не на одном сервере, а дублировать на нескольких, так можно минимизировать последствия падения сервера за счет избыточности хранения.
## Заметки
- Может атомарно делать инкримент и декримент
## Дополнительные материалы ## Дополнительные материалы
- [Web, кэширование и memcached](https://highload.guide/blog/web-caching-memcached.html) - [Web, кэширование и memcached](https://highload.guide/blog/web-caching-memcached.html)

View File

@ -0,0 +1,10 @@
---
aliases:
tags:
- зрелость/🌱
date: [[2024-06-19]]
zero-link:
parents:
linked:
---
**Read uncommitted (чтение незафиксированных данных).** Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций. ^52421e

View File

@ -0,0 +1,15 @@
---
aliases:
tags:
- зрелость/🌱
date:
- - 2024-06-19
zero-link:
- "[[00 Базы Данных]]"
parents:
- "[[Проблемы при параллельном выполнении нескольких транзакций]]"
linked:
---
**«Грязное» чтение** (dirty reads) — в результатах запроса появляются промежуточные результаты параллельной транзакции, которая ещё не завершилась.
Эта проблема наблюдается при уровне изоляции `READ_UNCOMMITTED`.

View File

@ -10,7 +10,7 @@ parents:
- "[[Транзакция БД]]" - "[[Транзакция БД]]"
linked: linked:
--- ---
**Read uncommitted (чтение незафиксированных данных).** Если несколько параллельных транзакций пытаются изменять одну и ту же строку таблицы, то в окончательном варианте строка будет иметь значение, определенное всем набором успешно выполненных транзакций. ![](Read%20uncommitted.md#^52421e)
**Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных. **Read committed (чтение фиксированных данных).** Большинство промышленных СУБД по умолчанию используют именно этот уровень. На этом уровне обеспечивается защита от «грязного» чтения, тем не менее, в процессе работы одной транзакции другая может быть успешно завершена и сделанные ею изменения зафиксированы. В итоге первая транзакция будет работать с другим набором данных.

View File

@ -6,4 +6,4 @@ zero-link:
parents: parents:
linked: linked:
--- ---
- Многие - Многие NoSQL не поддерживают [Транзакция БД](Транзакция%20БД.md), но обладают возможностью атомарных операций.