You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Core implementation is message id == message key, leading to a large, sparse message table to get the route index.
Describe the solution you'd like
Hash message and deconflict on lookup (confirm route matches MsgId). Could decrease message table size to a small multiple (2 or 4 maybe) of the routing table size depending on how many conflicts are acceptable.
Describe alternatives you've considered
Ordering the routing table and implement binary search and completely eliminate message table.
- Message map size based on used routes
- Oversized (4x) to limit collisions while retaining
resonable size related to routing table (still smaller)
- ~10% single collisions seen for full routing table
with realistic message ID use
- Oversizing means map can never fill, simplifies logic
- Observed approximately 10%-20% performance hit, trade
against memory use (can now use full 32 bit MsgId space)
- Hash intended for 32 bit, if CFE_SB_MsgId_Atom_t size
changes may require modification to hash
- Also added full coverage unit tests
- Message map size based on used routes
- Oversized (4x) to limit collisions while retaining
resonable size related to routing table (still smaller)
- ~10% single collisions seen for full routing table
with realistic message ID use
- Oversizing means map can never fill, simplifies logic
- Observed approximately 10%-20% performance hit, trade
against memory use (can now use full 32 bit MsgId space)
- Hash intended for 32 bit, if CFE_SB_MsgId_Atom_t size
changes may require modification to hash
- Also added full coverage unit tests
Is your feature request related to a problem? Please describe.
Core implementation is message id == message key, leading to a large, sparse message table to get the route index.
Describe the solution you'd like
Hash message and deconflict on lookup (confirm route matches MsgId). Could decrease message table size to a small multiple (2 or 4 maybe) of the routing table size depending on how many conflicts are acceptable.
Describe alternatives you've considered
Ordering the routing table and implement binary search and completely eliminate message table.
Additional context
See #928
Requester Info
Jacob Hageman - NASA/GSFC
The text was updated successfully, but these errors were encountered: