Skip to content

Reject logs that violate local process timing constraints #48

@bestchai

Description

@bestchai

We already reject logs that do not have monotonically-increasing-by-1 vector clock stamps for each process. But we should ensure these constraints:

  1. Timestamps should increase monotonically for a single process.
  2. Timestamps should increase monotonically between all happens-before events

E.g., given this regular expression:

(?<timestamp>(\d*)) (?<event>.*)\n(?<host>\w*) (?<clock>.*)

This log violates rule (1) and should be rejected (during parsing):

10001000 x1
a {"a": 1}
10002000 x2
a {"a": 2}
10001000 x3
a {"a": 3}

Instead, the second edge doubles back, overlapping the last node with the first.

Here's an example of the violation of constraint (2), which assumes the process's system clocks are sufficiently-synchronized for the visualization to be meaningful:

10002000 a sends message to b
a {"a": 1}
10001000 b receives message from a
b {"b": 1, "a": 1}

[Issue created by grahamstl: 2017-04-22]

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions