Dependency detection is limited primarily by its reliance on exhaustive search of possible patterns. This was feasible initially because the search space included only all possible immediately preceding influences on failure; the traces contained at most eleven types of failure and eight recovery actions, producing, at most, 1177 possible combinations.
The original algorithm was modified to include more flexible matching
and a non-exhaustive, but computationally more manageable search
through local search. More flexible matching of patterns to data
means that the event streams may be composed of many types of events,
which need not alternate as before. The events can be of different values for several types. Any
set of events with time stamps for ordering is a legal event
stream. In this view, the event streams for the Phoenix data are
described as having two types of events, failures and recovery
actions, which include eleven and eight values respectively. The data
is passed to the program in a file with three columns: time stamp,
event type and event value.