Many to many issues in systems engineering
Updated: 2022-03-31
Created: 2022-03-28
- Most simple configurations and configuration files
are linear.
- Most medium to large scale configurations are
many-to-many.
- Most systems engineers and most programmers are only
somewhat aware about data design issues like
representation of many-to-many relationships.
- Nagios: hosts and services, as many hosts can run
the same service, and the same host can run many
services.
- Ansible etc.: many targets can have the same flavour,
the same target can have many flavours.
- HPC: groups of hosts and groups of users; host
profiles and jobs profiles.
- Use an "associative" list,
for example
hostgroups in Nagios.
- Define a "primary" side, and linearize along that,
replicating the information for the secondary
side.
- Make an unmaintainable mess, can work pretty well in
the short term.
- It often happens that what once was a one-to-many
relationship evolves into a many to many
relationship.
- Example: "cattle" hosts become "pet" hosts.
- Short term solution: multiple one-to-many
relationships.
- Longer term solution: refactor with associative
relationship.