oracle: record queue based comparison approach
Every trace is transformed into a queue of records.
When a next record of some trace is received by oracle, it checks whether such a record is already in queues that are associated with other traces. If the equal record is found, it is removed (in such case the record is not added to the target trace's queue). If there are no same records, the record is pushed to the queue of the associated trace.
This approach does not take records order into account at all.
When finished (all the traces are empty), the oracle says "OK" if all the queues are empty. Otherwise it shows queues data.