xiaohe27 / logreader Goto Github PK
View Code? Open in Web Editor NEWThe log reader which can read log files
The log reader which can read log files
Whenever a formula is expressed successfully, report it to Grigore
Define a method for checking whether an event is in formula or not
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.
ditto
many invocations of StringBuilder.append VS new String(byte[]) . Test perf
[] 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
insert a single entry that violates the pub-approve property
Whether there is a way to express the happens before (not transit states easily)
my log analyzer only report one third?
Seems that it will report violations after 128 instances are generated anyway
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
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.
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
In rvm_m spec, a boolean field "hasViolation" is inserted so that when the violation is detected, that field will be set to true.
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.
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.
invoke rvm's methods for every sigle event, without any monitoring.
Just increment the counter
compare its perf with cur inline setting
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 publish event and approve event happens at the same time point.
Test whether Monpoly and Log Analyzer can get the same result
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.
It is interchangeable to add a pair of " to enclose string field.
There is no difference!
Log Reader generator read the spec and hard-coded the info to the customized log reader
compare it with Monpoly's time
Given different rvm spec, some of which are faulty, test whether the log reader generator can handle different situations well
add the support of comments to the syntax of log
So the log reader only need to have the path 2 the log file and monitoring lib in order to do the monitoring
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
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.