Исходный код вики Транзакция и хранилище
Редактировал(а) Alexandr Fokin 2023/01/23 17:32
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
2.2 | 1 | [[image:Схема.png]] |
| |
2.3 | 2 | |
| 3 | ---- | ||
| 4 | |||
| |
2.7 | 5 | |(% colspan="2" style="width:214px" %)Комментарий |
| |
2.14 | 6 | |(% style="width:214px" %)Условия|(% style="width:1281px" %)Тестирование проходило на версии 7 TestCluster. |
| |
2.10 | 7 | В качестве хранилища использовалась самодельная реализация IGrainStorage. Для имитации ошибки записи был задействован декоратор, который по порядковому номеру операции записи производил ошибку. |
| |
2.9 | 8 | После изменяющей транзакции предпринималась попытка в последующих транзакциях прочитать состояние. |
| |
2.5 | 9 | |(% style="width:214px" %)По итогам предварительного тестирования.|(% style="width:1281px" %)((( |
| 10 | Единичная ошибка записи в хранилище может: | ||
| 11 | |||
| |
2.6 | 12 | * Как быть корректно обработана последующими операциями. |
| 13 | При этом транзакция будет применена и все изменения будут сохранены. | ||
| |
2.11 | 14 | * Так и привести к тому, что будет получено неконсистентное состояние в grain при записи которого возникла ошибка |
| 15 | (по факту его состояние вернется к виду до начала транзакции. При этом состояния других Grain будут изменены, словно транзакция применилась успешно). | ||
| |
2.5 | 16 | |
| 17 | Первоначально я рассчитывал, что поведение системы будет другим. | ||
| |
2.3 | 18 | Допускается вероятность того, что сами тесты были выполнены не корректно. |
| |
2.5 | 19 | ))) |
| |
2.7 | 20 | |(% style="width:214px" %)Проблемные случаи|(% style="width:1281px" %)((( |
| 21 | Ошибка возникала в случае, когда не удавалось выполнить запись в: | ||
| 22 | |||
| |
2.12 | 23 | * Ошибка при записи последнего состояния на этапе "Запись подготовленных изменений в хранилище". |
| |
2.13 | 24 | * Ошибка при записи любого состояния, кроме последнего на этапе "Применение всех изменений". |
| |
2.7 | 25 | |
| 26 | В остальных случаях системе удавалось восстановиться и сохранить консистентность. | ||
| 27 | ))) |