-
Notifications
You must be signed in to change notification settings - Fork 26
Rework of component requirements related to snapshots #337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
6f0a23a
1d92ade
c22b5bc
fe26304
cedb55d
57ead8d
779df9d
68b6f98
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -338,83 +338,142 @@ Component Requirements | |||||
| application to implement versioning, including upgrade and downgrade paths, | ||||||
| as needed. | ||||||
|
|
||||||
| .. comp_req:: Snapshot Creation | ||||||
| :id: comp_req__kvs__snapshot_creation | ||||||
| .. comp_req:: Snapshot maximum number | ||||||
| :id: comp_req__kvs__snapshot_max_num | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :derived_from: feat_req__persistency__cfg[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall create a snapshot each time data is stored. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. extend by |
||||||
| The component shall maintain a configurable maximum number of snapshots. The maximum number shall be in the range <0..3>. | ||||||
| A value of zero means that snapshot operations are disabled, while a non-zero value specifies the maximum number of snapshots. | ||||||
|
|
||||||
| .. comp_req:: Snapshot Maximum Number | ||||||
| :id: comp_req__kvs__snapshot_max_num | ||||||
| .. comp_req:: Snapshot create API | ||||||
| :id: comp_req__kvs__snapshot_create_api | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__cfg[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall maintain a configurable maximum number of snapshots. | ||||||
| The component shall provide API for creation of snapshots with an argument that selects a dedicated snapshot slot by snapshot index. | ||||||
|
|
||||||
| .. comp_req:: Snapshot IDs | ||||||
| :id: comp_req__kvs__snapshot_id | ||||||
| .. note:: | ||||||
|
|
||||||
| A snapshot is a point-in-time, frozen view on all values in a key-value storage. | ||||||
|
|
||||||
| .. comp_req:: Snapshot create | ||||||
| :id: comp_req__kvs__snapshot_create | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall assign the ID 1 to the newest snapshot and shall increment the IDs of older snapshots accordingly. | ||||||
| The component shall create a new snapshot in the selected snapshot slot when the slot is empty. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
this should be defined for all API's handling snapshots
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed with last commit |
||||||
|
|
||||||
| .. comp_req:: Snapshot Rotation | ||||||
| :id: comp_req__kvs__snapshot_rotate | ||||||
| .. comp_req:: Snapshot overwrite | ||||||
| :id: comp_req__kvs__snapshot_overwrite | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__snapshot_remove[version==1],feat_req__persistency__snapshot_restore[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall rotate and delete the oldest snapshot when the maximum number is reached. | ||||||
| The component shall overwrite the selected snapshot slot when the slot is occupied. | ||||||
|
|
||||||
| .. comp_req:: Snapshot Restore | ||||||
| :id: comp_req__kvs__snapshot_restore | ||||||
| .. comp_req:: Snapshot restore API | ||||||
| :id: comp_req__kvs__snapshot_restore_api | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__snapshot_restore[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_restore[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall allow restoration of a snapshot by its ID. | ||||||
| The component shall provide API for restoration of snapshots with an argument that selects a dedicated snapshot slot by snapshot index. | ||||||
| The function shall return an error, when referenced snapshot slot is free. | ||||||
|
|
||||||
| .. comp_req:: Snapshot Deletion | ||||||
| :id: comp_req__kvs__snapshot_delete | ||||||
| .. comp_req:: Snapshot remove API | ||||||
| :id: comp_req__kvs__snapshot_remove_api | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_remove[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall provide API for removing of snapshots with an argument that selects a dedicated snapshot slot by snapshot index. | ||||||
| The function shall return an error, when referenced slot is free. | ||||||
|
|
||||||
| .. comp_req:: Explicit snapshot operations | ||||||
| :id: comp_req__kvs__explicit_snapshot_operations | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1], feat_req__persistency__snapshot_restore[version==1], feat_req__persistency__snapshot_remove[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: inspected | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall perform snapshot creation, restoration, and deletion only when explicitly triggered by the user through the corresponding APIs. | ||||||
|
|
||||||
| .. comp_req:: Snapshot slot indexing | ||||||
| :id: comp_req__kvs__snapshot_id | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall identify snapshot slots by a zero-based index, where the first slot has index 0, the second slot has index 1, and so on. | ||||||
|
|
||||||
| .. comp_req:: Snapshot data source | ||||||
| :id: comp_req__kvs__snapshot_source | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall use the live values that were set by the user, regardless of whether the values were flushed to disk. | ||||||
|
|
||||||
| .. comp_req:: Snapshot slot free query API | ||||||
| :id: comp_req__kvs__snapshot_slot_free_api | ||||||
| :reqtype: Functional | ||||||
| :security: NO | ||||||
| :safety: ASIL_B | ||||||
| :status: valid | ||||||
| :version: 1 | ||||||
| :derived_from: feat_req__persistency__snapshot_create[version==1], feat_req__persistency__snapshot_remove[version==1], feat_req__persistency__cfg[version==1] | ||||||
| :belongs_to: comp__persistency_kvs[version==1] | ||||||
| :tags: valid | ||||||
|
|
||||||
| The component shall allow deletion of individual snapshots. | ||||||
| The component shall provide an API to check whether a slot identified by a snapshot index is free or occupied. | ||||||
|
|
||||||
| .. comp_req:: Engineering Mode | ||||||
| :id: comp_req__kvs__eng_mode | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of
refactoringexisting requrirements we keep the old ones and mark them as:status: invalid