реклама на сайте
подробности

 
 
> А кто как организует в своих программах контроль завершённости, транзакции обновления базы данных
Дон Амброзио
сообщение Mar 27 2008, 13:03
Сообщение #1


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



А кто как организует в своих программах контроль завершённости транзакции обновления базы данных во внутренней EEPROM или во внутренней FLASH микроконтроллеров ATmega? И кто как реализует откат назад в случае если обнаруживается, что предыдущая транзакция была прервана(не завершена)..А?


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Непомнящий Евген...
сообщение Mar 28 2008, 05:17
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(galjoen @ Mar 27 2008, 20:45) *
Только у меня не "флаг актуальности", а счётчик (2 байта). У кого он больше, тот пакет и последний.

На самом деле достаточно одного бита. Актуальный пакет находится "по переходу". Пример:
Код
Пакеты    П1    П2    П3
Флаг        1    1    0 Актуальный  - П2

Пакеты    П1    П2    П3
Флаг        1    1    1 Актуальный  - П3

Пакеты    П1    П2    П3
Флаг        0    1    1 Актуальный  - П1

и т.д.

В вашем случае получается примерно также, но вместо 1 бита вы храните 2 байта. Однако счетчик вероятно все равно может перескочить через 0 и вы получите тоже, что и у меня...

Цитата(Дон Амброзио @ Mar 28 2008, 06:15) *
Вот я думаю, что для возможности восстановления повреждённой записи базы данных, разрушенной по причине незавершённости транзакции, [...]

У меня (см пример выше) П1, П2 и П3 - это НЕ КОПИИ. Это разные версии информации одного типа. Для верхнего примера П3 - самая младшая версия (из имеющихся), затем П1, затем П2 - актуальная версия. Когда мне придется сохранить информацию в очередной раз, пакет П3 будет затерт. Пусть при этом произошел сбой. Это значит, что я потерял самую старую версию информации (которая мне уже все равно не нужна). При следующем чтении будет прочитан П2, а П3 определен как "пустой".
Для такой схемы нужно как минимум 2 "слота" под однотипный пакет. Чем больше "слотов" тем сильнее "размазывается" ресурс епрома (и тем медленее происходит определение актуального пакета)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Дон Амброзио   А кто как организует в своих программах контроль завершённости   Mar 27 2008, 13:03
- - Aesthete Animus   Что-то я плохо понял суть вопроса, не похоже, что ...   Mar 27 2008, 13:52
|- - Дон Амброзио   Цитата(Aesthete Animus @ Mar 27 2008, 16...   Mar 27 2008, 14:02
- - Непомнящий Евгений   В епром использую следующий механизм: Группа парам...   Mar 27 2008, 14:12
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Mar 27 2008, 17...   Mar 27 2008, 14:16
- - Непомнящий Евгений   Вот тут: ЦитатаЕсли при этом произошла ошибка - то...   Mar 27 2008, 14:58
|- - galjoen   Пользую примерно такой-же способ как 'Непомнящ...   Mar 27 2008, 17:45
|- - Дон Амброзио   Цитата(galjoen @ Mar 27 2008, 20:45) Види...   Mar 27 2008, 23:28
||- - Дон Амброзио   Вот я думаю, что для возможности восстановления по...   Mar 28 2008, 03:15
|- - Kirill Frolov   Цитата(galjoen @ Mar 27 2008, 20:45) Поль...   Mar 28 2008, 19:56
|- - Непомнящий Евгений   Цитата(Kirill Frolov @ Mar 28 2008, 22:56...   Mar 29 2008, 08:47
|- - Kirill Frolov   Цитата(Непомнящий Евгений @ Mar 29 2008, 11...   Mar 29 2008, 10:06
|- - Непомнящий Евгений   Цитата(Kirill Frolov @ Mar 29 2008, 13:06...   Mar 29 2008, 12:49
- - blackbit   Не поверите - одним битом. Черным. Сколько не пыт...   Mar 28 2008, 06:06
|- - Дон Амброзио   Цитата(blackbit @ Mar 28 2008, 09:06) Не ...   Mar 28 2008, 06:28
- - Igor26   Цитата50% (слетит или не слетит).. Т.е. как у той ...   Mar 28 2008, 08:31
|- - Дон Амброзио   Цитата(Igor26 @ Mar 28 2008, 12:31) Затем...   Mar 30 2008, 14:00
|- - Непомнящий Евгений   Цитата(Дон Амброзио @ Mar 30 2008, 17:00)...   Mar 31 2008, 04:28
|- - Дон Амброзио   Цитата(Непомнящий Евгений @ Mar 31 2008, 07...   Mar 31 2008, 05:06
- - _Pasha   Чистая эмпирика: 1. Блоки данных с CRC16 в конце п...   Mar 29 2008, 10:17
- - oran-be   А я делаю очень просто - при закатывании данных к ...   Mar 30 2008, 14:13
- - Дон Амброзио   Цитата(oran-be @ Mar 30 2008, 18:13)...   Mar 30 2008, 14:32


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 17:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016