Giter Site home page Giter Site logo

logreader's People

Contributors

xiaohe27 avatar

Watchers

 avatar  avatar

logreader's Issues

Monitor

Define a method for checking whether an event is in formula or not

provide two methods for parsing event args

If the event is monitored in the formula, then use eager evaluation and directly parse it;
Else, just ensures the args conform to the very basic syntax, and no type checking is performed at all!

Event name must appear in the sig file, though.

E.G. A (x:int) is in the sig file, but event A not occurs in the formula file.
Then in the log file, A(), A(5), A(2,3), A(hi, my)... are all accepted by Monpoly.

exp

many invocations of StringBuilder.append VS new String(byte[]) . Test perf

Try this using Monpoly

[] forall ?user. ?db. ?p. ?data. insert (?user, ?db, ?p, ?data) => (<> fool(?a, ?b, ?c, ?d) /\ (?a = ?user /\ ?b = ?db /\ ?c = ?p /\ ?d = ?data))

Try a large log file

strategy for log-reader generator

if the rvm spec does not contain expected formula, then it implies that the property is a simple propositional formula and no rvm methods are needed. In this case, just gen the log reader's monitor method from the simple condition derived from the simple formula, and no RVM thing is needed.

If the expected formula has been specified, then gen the log reader as normal

Liveness property

We cannot decide whether a liveness property (<> p) is violated until the end of the log has been reached. Idea: report it as non-monitorable at the beginning.

try a new approach of parsing int

each time a digit is encountered, multiply the cur number by 10 and then add the digit to the number...
Compare the perf with cur approach

exp on monpoly

if two events with diff name but same args violate two properties respectively, whether Monpoly will output the event name or not?
Currently if only one kind of event in the formula, then the event name will be omitted.

Idea about the MFOTL

Can reduce the mfotl formula to a normal temporal logic with some constraints w.r.t. time stamps. Keep a separate data structures for monitoring all the timed events. If an expected future event does not happen in the given time bound, then report violation of property.

test rvm's perf

invoke rvm's methods for every sigle event, without any monitoring.
Just increment the counter

Do an interesting experiment to Monpoly

It seems that during the parsing stage, Monpoly does not construct any object of specific data type; instead, only certain delimiters are identified and used to isolate different fields. So, test whether some not well-formed fields can be detected if there is no formula associated with it.

a test for happensBefore

a publish event and approve event happens at the same time point.
Test whether Monpoly and Log Analyzer can get the same result

Make it faster

Use totally lazy eval, and weak type checking like Monpoly.
Only detect and parse ts, event name for every event,
for the events which are not of our interests, do NOT parse it at all.

string in Monpoly

It is interchangeable to add a pair of " to enclose string field.
There is no difference!

remove objects

avoid using objects as much as possible.
record the starting and ending index of fields, construct objects when necessary.
It is not always needed to construct objects from the bytes though

make it a proj in RV family!

input: rvm spec

output: log reader which will trigger event methods for the corresponding events

Problem: how to tell whether an event is of our interest?
In Monpoly's setting, if it occurs in sig, then it is allowed to appear in the log file.
However, only if an event name appears in the formula file, will it be monitored!

If all the events are simply listed in the .rvm file, there is no way to distinguish them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.