Requirements#

Persistency KVS Feature Requirements
status: valid
safety: ASIL_B
tags: persistencykvs, persistency
C++ & Rust Interoperability
status: valid
security: NO
safety: QM
tags: persistencykvs, persistency
reqtype: Non-Functional

The Key-Value-Storage shall provide access through both C++ and Rust interfaces.

Maximum Size
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall support specification of its maximum size at compile time.

Multiple KVS per Software Architecture Element
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall allow instantiating multiple independent stores per software architecture element.

Supported Datatypes (Keys)
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support UTF-8 encoded strings as valid key types.

Supported Datatypes (Values)
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support storing both primitive and non-primitive datatypes as values. The supported datatypes shall match those used by the IPC feature.

Default Value Retrieval
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support retrieving the default value associated with a key.

Default Value Reset
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support resetting a single key or all keys to their respective default values.

Integrity Check
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall detect and report data corruption. Note: Implementation depends on AoUs.

Versioning
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall support versioning for different layout configurations.

Update Mechanism
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall implement mechanisms to upgrade from one version to another, including multi-version jumps.

Snapshots
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support explicit creation of snapshots identified by unique IDs and allow rollback to previous snapshots. Snapshots shall also be deletable.

Tooling
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Non-Functional

The Key-Value-Storage shall provide tooling support for viewing and modifying key-value pairs during development and debugging.

Variant management support
status: valid
security: NO
safety: QM
tags: persistencykvs, persistency
reqtype: Non-Functional

The Key-Value-Storage shall ensure compatibility across different architectures and versions.

Set default key values via file
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall support the configuration of default key values using an external file.

Configure limits via file
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall support the configuration of memory and other resource limits via a configuration file.

Support engineering mode
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall an engineering (developer) mode. The engineering mode shall allow unrestricted data access.

Support field mode
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall a field mode. The field mode should enforce the most restrictive data access controls feasible.

Provide an async API
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall provide an asynchronous API for accessing and manipulating data.

Separate data stores
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall ensure that only authorized components can access individual data stores.

Data-change events
status: valid
security: NO
safety: ASIL_B

The Key-Value-Storage shall provide an API that allows for the registration of callback functions. These callbacks shall be invoked in response to specific events, such as when keys are changed or removed.

Fast access
status: valid
security: NO
safety: QM
tags: persistencykvs, persistency
reqtype: Non-Functional

The Key-Value-Storage shall ensure that key operations are completed within 5 milliseconds.

Intra-Process Data Access
status: valid
security: NO
safety: ASIL_B
tags: persistencykvs, persistency
reqtype: Functional

The Key-Value-Storage shall support concurrent intra-process data access.

AoU Requirements#

Persistency Error handling
status: valid
security: NO
safety: ASIL_B

The application shall handle if the feature persistency is not available.

Application deadlock
status: valid
security: NO
safety: ASIL_B
tags: environment, persistencykvs, persistency
reqtype: Functional

The application shall be designed in a way that deadlocks are avoided.

Application execution
status: valid
security: NO
safety: ASIL_B
tags: environment, persistencykvs, persistency
reqtype: Functional

The execution of persistency shall not be blocked by the application.