90 likes | 221 Views
Outline. System architecture How to use the community to reduce learning cost Algorithm for Merging Constraints Experiments Overhead Accuracy. Central Management System. Patch/Repair Code Generation. Merge Constraints (Daikon). Constraints. Patch results. Patches. Learning (Daikon).
E N D
Outline • System architecture • How to use the community to reduce learning cost • Algorithm for Merging Constraints • Experiments • Overhead • Accuracy
Central Management System Patch/RepairCode Generation Merge Constraints (Daikon) Constraints Patch results Patches Learning (Daikon) Learning (Daikon) Sample Data Sample Data … … MPEE Live Shield MPEE Live Shield Application Application Application Application Client Workstations (Learning) Client Workstations (Protected) System Architecture
Merge Constraints Example • W=2 • X=42 • X in {42} • X%W=0 • X-21*W=0 • W<X • Y<8 • Y<X • Y=Z|Y • Y%W=0 • W=2 • X in {3,57} • W<X • Y<9 • Y=Z|Y • Y%W=0 • Y+3*W=0 • W=2 • X in {3,42,57} • W<X • Y<8 • Y=Z|Y • Y%W=0 + = … … …
Merge Constraints • Stateless constraints • Example: x=y , x=y|x , x%y=0 • Either true/false • Merging algorithm: if the constraint always appear • Sample dependent constraints • Example: x<42 , x in {1,4,8} , 3x-7y+2z=9 • Change as new samples arrive • Merging example: • x<42 and x<56 are merged to x<42 • Update number of samples, missing variables, etc. • Corner cases • Suppressed invariants, constant optimization • Small number of samples for an invariant
Integration Experiments • Evaluate community effectiveness by comparing: • Learning from one copy of an application • Community-based learning (multiple executions) • Two experiments • Overhead comparison • Accuracy comparison • Infrastructure • Apache web server (HTTPD) on Windows • A community of ten or more executions of Apache
Instrumentation Overhead Experiment • Baseline • Instrument 100% of Apache • Time a sequence of HTTP GET operations • (Daikon processes the single output file) • Community Learning • Instrument a different 10% of Apache in 10 executions • Instrument a different 1% of Apache in 100 executions • Each execution will create a distinct trace of part of the program • The combined executions will instrument all of Apache • (Daikon processes all trace files) • Community learning constraints match baseline constraints • Instrumentation overhead is reduced significantly
Instrumentation Overhead Results • Community learning constraints match baseline constraints • Instrumentation overhead is reduced significantly
Accuracy Experiment • Community Learning • Instrument 100% of Apache during 1000 HTTP operations • Divide into two sets: learning and testing • Build constraints based on • 1% of the learning set • 2% of the learning set • … • 100% of the learning set • A constraint is a false-positive is if it is violated by a sample in the testing set
Accuracy Experiment Results • False positives are reduced as more community learning is used.