The problems we currently have with UNKNOWN events:
(1) Complicated logic for acknowledges. For instance, if we have PROBLEM -> UNKNOWN -> PROBLEM -> UNKNOWN -> PROBLEM, then acknowledging one PROBLEM event has to copy acknowledges to other PROBLEM events as well.
(2) PROBLEM -> UNKNOWN -> PROBLEM is essentially a single PROBLEM.
(3) When deciding if we need to add an event or not, we have to look into "events" table which slows down processing.
(4) Complicated logic for calculating durations in GUI.
(5) UNKNOWN events can mean different things that cannot be distinguished between. For instance: a trigger has just been created, one of the items became unsupported, trigger cannot be evaluated, a server has just been restarted.
(6) UNKNOWN events hide the previous meaningful status: if a trigger was in the PROBLEM state before becoming UNKNOWN, then we have to look for the PROBLEM state manually.