Re: Безопасная запись данных

From
Alexey Desyatnik ()
To
Pavel Fomin
Date
2002-08-17T20:29:52Z
Area
RU.ALGORITHMS
From: "Alexey Desyatnik" <desyatnik@dax.ru>

"Pavel Fomin" <Pavel.Fomin@p21.f49.n5026.z2.fidonet.org>
сообщил/сообщила в новостях следующее:

>  AB> Типовая конфигурация - семафор указывает на 1 область.
>
>  AB> Запись :
>  AB> Этап 1. Пришедшие новые данные пишутся во вторую область.
>  AB> Этап 2. Семафор переключается на вторую область.
> --
>  AB> Этап 3. Эти же данные копируются в первую область.
>  AB> Этап 4. Семафор переключается на первую область
> --
> Вот это нафиг.
> Представь: идет запись, записали в 2, переключили в 2, пишем в 1 - облом.
> Перезагрузка, ситуация (1-invalid,*2-ok*). Снова пишем - пишем в 2 -
облом.

А писать надо в инвалидную область.

> Итого - и первая и вторая области неверны. Лучше просто писать в
незанятую. И
> все.

>  AB> При каждом рестарте нужно проанализировать состояние семафора,
>  AB> и продолжить прерванный алгоритм записи с того места, где
>  AB> он прервался.
> Вот-вот, это обходной путь. Только нафига?

Это _не_ обходной путь. Это нормальная обработка транзакций.
Работа продолжается с того места, где произошел облом,
как будто ничего не было; следующий этап - только после
_полного_ завершения текущего.

WBR, AD (desyatnik@dax.ru)



-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.Mail.Ru (2:5020/400)