90 likes | 190 Vues
This document discusses a system architecture designed to reduce learning costs through community collaboration, focusing on the algorithm and experiments related to merging constraints in code generation. It elaborates on the effectiveness of community learning, demonstrating how it can lower overhead while improving accuracy in management systems employing Daikon constraints. The described methodology includes examples of merging constraints, handling corner cases, and conducting thorough experiments using the Apache web server to assess performance benefits.
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.