Skip to content

Do not persist all fabrics as a single TLV #27

@ivmarkov

Description

@ivmarkov

Currently, all fabrics are persisted in the KvBlobStore by first converting them to one large TLV list and then saving the bytes' representation of this list under a single key - fabrics.

The problems with that:

  • (High Prio) - some KvBlobStore implementations (notably, the sequential_map one in downstream rs-matter-embassy) have a hard limit on the size of the value being persisted. For sequential_map it is a bit less than 4K which is the NOR flash page size (or NOR flash erase size). Therefore, the current approach cannot even support > 2 fabrics, as they overflow the 4K NOR flash page;
  • (Mid Prio) - a relatively large KV Buffer is necessary for the persistence to work. Roughly 2x the size of all fabrics;
  • (Low Prio) a change to fabric X is requiring the persistence of ALL fabrics currently.

Possible solutions:

  • One option would be to retire the sequential_map storage in rs-matter-embassy in favor of another one. Say - embassy kv;
  • Another option would be to change the persistence of the fabrics in such a way that they are persisted under separate keys.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions