inferring models of concurrent systems from logs of their
play

Inferring Models of Concurrent Systems from Logs of Their Behavior - PowerPoint PPT Presentation

Inferring Models of Concurrent Systems from Logs of Their Behavior with CSight A?a-1 timeout s0 send(m) s1 M!m-0 s2 A?a-1 Sender Receiver A?a-0 A?a-1 2,1 M?m-0 1,0 send(m) A?a-0 s5 M!m-1 s4 send(m) s3 2,2 recv(m) 2,0 M!m-0


  1. Inferring Models of Concurrent Systems from Logs of Their Behavior with CSight A?a-1 timeout s0 send(m) s1 M!m-0 s2 A?a-1 Sender Receiver A?a-0 A?a-1 2,1 M?m-0 1,0 send(m) A?a-0 s5 M!m-1 s4 send(m) s3 2,2 recv(m) 2,0 M!m-0 2,3 A!a-0 3,3 A?a-0 timeout 5,4 M?m-1 4,3 send(m) (a) Sender 5,5 recv(m) 5,3 M!m-1 A 5,6 A!a-1 M 6,6 A?a-1 8,7 M?m-0 7,6 send(m) 8,8 recv(m) 8,6 M!m-0 8,9 A!a-0 9,9 A?a-0 r0 M?m-0 r1 recv(m) r2 11,10 M?m-1 M?m-0 10,9 send(m) 11,11 recv(m) 11,9 M!m-1 A!a-1 M?m-1 M?m-0 A!a-0 11,12 A!a-1 12,12 A?a-1 M?m-1 r5 recv(m) r4 M?m-1 r3 (b) Receiver University of British Columbia Ivan Beschastnikh ! ! ! ! ! ! ! ! ! ! ! ! Yuriy Brun ! ! ! ! Michael D. Ernst ! UMass Amherst Arvind Krishnamurthy University of Washington

  2. A?a-1 timeout s0 send(m) s1 M!m-0 s2 A?a-1 A?a-0 A?a-1 A?a-0 s5 M!m-1 s4 send(m) s3 Sender Receiver timeout 2,1 M?m-0 (a) Sender 1,0 send(m) 2,2 recv(m) 2,0 M!m-0 A CSight M 2,3 A!a-0 3,3 A?a-0 5,4 M?m-1 4,3 send(m) 5,5 recv(m) 5,3 M!m-1 5,6 A!a-1 6,6 A?a-1 r0 M?m-0 r1 recv(m) r2 M?m-0 8,7 M?m-0 7,6 send(m) 8,8 recv(m) A!a-1 M?m-1 8,6 M!m-0 M?m-0 A!a-0 8,9 A!a-0 9,9 A?a-0 M?m-1 r5 recv(m) r4 M?m-1 r3 11,10 M?m-1 10,9 send(m) 11,11 recv(m) 11,9 M!m-1 11,12 A!a-1 12,12 A?a-1 (b) Receiver Input log Output model Ivan Beschastnikh University of British Columbia 2

  3. Challenges of logging for debugging ... • Logs present a low-level host1 host2 host3 view of the system • Developers are not sure what src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare to look for, or where ! src : 0, dst : 2, timestamp : 2, type : commit src : 0, dst : 2, timestamp : 2, type : commit src : 0, dst : 2, timestamp : 2, type : commit src : 1, dst : 2, timestamp : 3, type : commit src : 1, dst : 2, timestamp : 3, type : commit src : 1, dst : 2, timestamp : 3, type : commit src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 0, dst : 2, timestamp : 6, type : ack src : 0, dst : 2, timestamp : 6, type : ack src : 0, dst : 2, timestamp : 6, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 2, dst : 0, timestamp : 8, type : prepare src : 2, dst : 0, timestamp : 8, type : prepare src : 2, dst : 0, timestamp : 8, type : prepare src : 2, dst : 1, timestamp : 9, type : prepare src : 2, dst : 1, timestamp : 9, type : prepare src : 2, dst : 1, timestamp : 9, type : prepare src : 0, dst : 2, timestamp : 10, type : commit src : 0, dst : 2, timestamp : 10, type : commit src : 0, dst : 2, timestamp : 10, type : commit • Reasoning about logged src : 1, dst : 2, timestamp : 11, type : commit src : 1, dst : 2, timestamp : 11, type : commit src : 1, dst : 2, timestamp : 11, type : commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 0, dst : 2, timestamp : 14, type : ack src : 0, dst : 2, timestamp : 14, type : ack src : 0, dst : 2, timestamp : 14, type : ack src : 1, dst : 2, timestamp : 15, type : ack src : 1, dst : 2, timestamp : 15, type : ack src : 1, dst : 2, timestamp : 15, type : ack ... src : 2, dst : 0, timestamp : 16, type : prepare src : 2, dst : 0, timestamp : 16, type : prepare src : 2, dst : 0, timestamp : 16, type : prepare concurrency is a nightmare ! src : 2, dst : 1, timestamp : 17, type : prepare src : 2, dst : 1, timestamp : 17, type : prepare src : 2, dst : 1, timestamp : 17, type : prepare src : 0, dst : 2, timestamp : 18, type : commit src : 0, dst : 2, timestamp : 18, type : commit src : 0, dst : 2, timestamp : 18, type : commit src : 1, dst : 2, timestamp : 19, type : commit src : 1, dst : 2, timestamp : 19, type : commit src : 1, dst : 2, timestamp : 19, type : commit src : 2, dst : 0, timestamp : 20, type : tx_commit src : 2, dst : 0, timestamp : 20, type : tx_commit src : 2, dst : 0, timestamp : 20, type : tx_commit src : 2, dst : 1, timestamp : 21, type : tx_commit src : 2, dst : 1, timestamp : 21, type : tx_commit src : 2, dst : 1, timestamp : 21, type : tx_commit src : 0, dst : 2, timestamp : 22, type : ack src : 0, dst : 2, timestamp : 22, type : ack src : 0, dst : 2, timestamp : 22, type : ack src : 1, dst : 2, timestamp : 23, type : ack src : 1, dst : 2, timestamp : 23, type : ack src : 1, dst : 2, timestamp : 23, type : ack src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 0, timestamp : 0, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare src : 2, dst : 1, timestamp : 1, type : prepare src : 0, dst : 2, timestamp : 2, type : commit src : 0, dst : 2, timestamp : 2, type : commit src : 0, dst : 2, timestamp : 2, type : commit src : 1, dst : 2, timestamp : 3, type : commit src : 1, dst : 2, timestamp : 3, type : commit src : 1, dst : 2, timestamp : 3, type : commit • Must connect clues across src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 0, timestamp : 4, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 2, dst : 1, timestamp : 5, type : tx_commit src : 0, dst : 2, timestamp : 6, type : ack src : 0, dst : 2, timestamp : 6, type : ack src : 0, dst : 2, timestamp : 6, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 1, dst : 2, timestamp : 7, type : ack src : 2, dst : 0, timestamp : 8, type : prepare src : 2, dst : 0, timestamp : 8, type : prepare src : 2, dst : 0, timestamp : 8, type : prepare host and execution logs src : 2, dst : 1, timestamp : 9, type : prepare src : 2, dst : 1, timestamp : 9, type : prepare src : 2, dst : 1, timestamp : 9, type : prepare src : 0, dst : 2, timestamp : 10, type : commit src : 0, dst : 2, timestamp : 10, type : commit src : 0, dst : 2, timestamp : 10, type : commit src : 1, dst : 2, timestamp : 11, type : commit src : 1, dst : 2, timestamp : 11, type : commit src : 1, dst : 2, timestamp : 11, type : commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 0, timestamp : 12, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 2, dst : 1, timestamp : 13, type : tx_commit src : 0, dst : 2, timestamp : 14, type : ack src : 0, dst : 2, timestamp : 14, type : ack src : 0, dst : 2, timestamp : 14, type : ack src : 1, dst : 2, timestamp : 15, type : ack src : 1, dst : 2, timestamp : 15, type : ack src : 1, dst : 2, timestamp : 15, type : ack src : 2, dst : 0, timestamp : 16, type : prepare src : 2, dst : 0, timestamp : 16, type : prepare src : 2, dst : 0, timestamp : 16, type : prepare src : 2, dst : 1, timestamp : 17, type : prepare src : 2, dst : 1, timestamp : 17, type : prepare src : 2, dst : 1, timestamp : 17, type : prepare log1.txt log2.txt log3.txt Ivan Beschastnikh University of British Columbia 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend