06 - atomic update
This commit is contained in:
1 parent
6d63457737
commit
2bdacaf37a
21 files changed
+1302
-365
No files matched your search
@@ -0,0 +1,48 @@
|
||||
@startuml
|
||||
title A/B preparation and activation
|
||||
skinparam shadowing false
|
||||
skinparam monochrome true
|
||||
participant "OTA manager" as Manager
|
||||
participant Installer
|
||||
database "Slot B" as B
|
||||
database "OTA progress" as Progress
|
||||
participant "Boot control" as Boot
|
||||
|
||||
note over Manager, Boot
|
||||
A is confirmed. B is inactive. No earlier trial is pending.
|
||||
One installer owns B. A and shared data are preserved.
|
||||
end note
|
||||
Manager -> Progress : Save intent: release and target B
|
||||
Manager -> Installer : Prepare B
|
||||
Installer -> B : Write release
|
||||
Installer -> B : Complete required storage operations
|
||||
Installer -> B : Read and verify installed contents
|
||||
Installer --> Manager : Verified expected release
|
||||
note over Manager, Boot
|
||||
Reset before activation: boot A.
|
||||
Inspect B and verify again before a new activation request.
|
||||
end note
|
||||
Manager -> Progress : Save prepared release B
|
||||
Manager -> Boot : Save trial request for B
|
||||
Boot -> Boot : Persist target and attempt limit
|
||||
note right of Boot
|
||||
Interrupted state write:
|
||||
read valid old or new state,
|
||||
or enter defined recovery.
|
||||
end note
|
||||
Boot --> Manager : Trial request saved
|
||||
note over Manager, Boot
|
||||
Reset here: boot control may start B.
|
||||
Old OTA progress must not cause a rewrite or fresh attempts.
|
||||
end note
|
||||
Manager -> Progress : Save trial-requested result
|
||||
Manager -> Boot : Restart into trial
|
||||
ref over Manager, Boot
|
||||
Existing A/B trial boot, checks, and confirmation diagram
|
||||
end ref
|
||||
legend bottom
|
||||
Success path only. Any error stops forward progress and requires state inspection.
|
||||
Arrows assume completed durable operations under the platform storage contract.
|
||||
A saved trial request is not confirmation.
|
||||
endlegend
|
||||
@enduml
|
||||
Reference in new issue
Block a user