169 похожих чатов

У меня вот глупый вопрос: Работает SQL Server. Пришёл чекпойнт скинул

БД на диск. Отчитался в журнал транзакций.
Update обновила строку на страничке. Транзакция завершилась. Записалась в журнал транзакций.
Прибежал LazyWriter утащил эту грязную страницу на диск.
Наступил жёсткий резет сервера, всё резко отключилось.
Сервер поднялся, поднял БД в память, нашёл чекпоинт в логе, и стал проигрывать журнал с этого места. Дошёл до нужной транзакции, прочитал страничку с диска (а она же уже изменённая - так как записана LazyWriterом ранее).
В интернете говорится что "A lazy writer does not make any entry in the transaction log".
Получается, что он применит транзакцию к изменённой странице?
Или как SQL Server узнает, что страничка уже изменилась?

5 ответов

8 просмотров

В заголовке (header) страницы есть lsn последнего изменения https://sqlity.net/en/2088/page-header-explained/

om- Автор вопроса
Дмитрий Кухтенков
В заголовке (header) страницы есть lsn последнего ...

Ага. То есть в Redo фазе, в случае LSN страницы выше, чем транзакции, то транзакция отбрасывается, считая, что она уже накатилась.

а у тебя это вопрос любопытства или какой-то рабочий кейс?

om- Автор вопроса
Igor Sergeichik
а у тебя это вопрос любопытства или какой-то рабоч...

Чистое любопытство. Задумался, что с чекпойнтом всё просто, а как быть с LW? Решение оказалось довольно элегантным.

Похожие вопросы

Обсуждают сегодня

А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Вместо import и library придется писать importlib?
The Bird of Hermes
19
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
а как с таким борятся ? про термин стак тут мне пока не попадалось ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take ...
Fedor
13
А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
вот вопрос, вот про это type Events = [String] type Probs = [Double] у курта есть задание Если бы ваши типы Events и Probs были самостоятель­ ными типами данных, а не просто...
Fedor
8
Привет, а не сталкивался ли кто с тем, что поиск по тв-шкам с помощью SiteContent и tvFiler просто ужасающе тормозит. Например при 5-7 значениях тв в поиске и 150тыс ресурсах ...
Oleg Nosov
5
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
сурсы: import std/asyncdispatch, std/httpclient, std/json, std/sequtils, std/strutils, std/unicode, std/unidecode, std/uri, uuid4, regex const GPT4_API...
Qtless Qtless
4
вот еще вопрос ошибка app/Main.hs:135:13: error: [GHC-83865] • Couldn't match type: MoveInfo -> Coords with: (Int, Int) Expected: Coords ...
Fedor
21
Карта сайта