Подтверждение записи и согласованное чтение MongoDB

mongodb118-consistency-snapshot-report

Это строки реального запуска на синтетических документах. Своя коллекция после проверки удалена.

Часть отчётаТоварОстаток
Начало отчётаCUP + LAMP5
Деталь того же снимкаLAMP2
Свежее чтение вне снимкаLAMP9

Наблюдения этого запуска

Ниже сохранены политики чтения/записи, наблюдаемые документы и диагностические данные. Один узел не является испытанием отказоустойчивости. Случайные имена учебных объектов заменены подписями.

Переданные настройки snapshot-сессии
{
    "snapshot": true,
    "causalConsistency": false
}
Политика свежего чтения вне снимка
{
    "write": {
        "w": "majority",
        "journal": true,
        "timeout_ms": 1500,
        "default": false
    },
    "read": {
        "level": "majority",
        "default": false
    },
    "route": {
        "mode": "primary",
        "tags": [],
        "max_staleness_seconds": -1
    }
}
Первое чтение, задающее снимок
[
    {
        "_id": 401,
        "sku": "CUP",
        "stock": 3
    },
    {
        "_id": 402,
        "sku": "LAMP",
        "stock": 2
    }
]
Второе чтение того же снимка
{
    "_id": 402,
    "sku": "LAMP",
    "stock": 2
}
Отдельное свежее чтение
{
    "_id": 402,
    "sku": "LAMP",
    "stock": 9
}
Порядок
[
    "first_read",
    "outside_write_without_session",
    "second_read_same_snapshot",
    "fresh_read_without_session"
]

PHP 8.5.11; mongodb 2.5.5; MongoDB 8.0.34.