{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/46762"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/46762","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Use of deterministic execution in testing and debugging of distributed software","abstract":"Large-scale networks are among the most complex software infrastructures in existence. Unfortunately, the increasing complexity of its software requirements leads to a rich variety of nondeterministic failure modes and anomalies. Research on testing and debugging modern distributed software has focused on designing comprehensive record and replay systems, but the large volumes of recordings often hinder the efficiency and scalability of these designs. Here, we argue for a different approach. Namely, we take the position that deterministic network execution would vastly simplify the distributed software testing and debugging process. This thesis presents the design and implementation of a network architecture for interactive testing and debugging that provides deterministic network execution of distributed software in highly distributed and dynamic environments. We design efficient and scalable algorithms for both control and data traffics in modern wide-area networks. In addition, we further describe several interactive primitives to reduce the time and effort on testing and debugging of large-scale distributed software. We demonstrate our system's advantages by analyzing nondeterministic ordering and timing bugs in popular real-world distributed software, XORP, Quagga, and lighttpd. Using Rocketfuel topologies and traffic data from a Tier-1 backbone, we show that our design is practical and scalable for interactive fault diagnosis in large networks.","abstract_html":"Large-scale networks are among the most complex software infrastructures in existence. Unfortunately, the increasing complexity of its software requirements leads to a rich variety of nondeterministic failure modes and anomalies. Research on testing and debugging modern distributed software has focused on designing comprehensive record and replay systems, but the large volumes of recordings often hinder the efficiency and scalability of these designs. Here, we argue for a different approach. Namely, we take the position that deterministic network execution would vastly simplify the distributed software testing and debugging process. This thesis presents the design and implementation of a network architecture for interactive testing and debugging that provides deterministic network execution of distributed software in highly distributed and dynamic environments. We design efficient and scalable algorithms for both control and data traffics in modern wide-area networks. In addition, we further describe several interactive primitives to reduce the time and effort on testing and debugging of large-scale distributed software. We demonstrate our system&#x27;s advantages by analyzing nondeterministic ordering and timing bugs in popular real-world distributed software, XORP, Quagga, and lighttpd. Using Rocketfuel topologies and traffic data from a Tier-1 backbone, we show that our design is practical and scalable for interactive fault diagnosis in large networks.","abstract_has_math":false,"creators":["Lin, Chia-Chi"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Caesar, Matthew C.","Torrellas, Josep","Hu, Yih-Chun","Ceze, Luis"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2014,"date_issued":"2014-01-16T18:01:35Z","date_published":"2014-01-16T18:01:35Z","updated_at":"2026-07-22T22:25:36Z","subjects":["Deterministic Execution","Distributed Testing","Distributed Debugging","Speculative Execution","Synchronized Clocks","Single-Step","Breakpoint","Backtrace"],"languages":["en"],"rights":["Copyright 2013 Chia-Chi Lin"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/46762","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Caesar, Matthew C.","Torrellas, Josep","Hu, Yih-Chun","Ceze, Luis"]},{"key":"dc:creator","label":"Author","values":["Lin, Chia-Chi"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2014-01-16T18:01:35Z","2013-12"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Deterministic Execution","Distributed Testing","Distributed Debugging","Speculative Execution","Synchronized Clocks","Single-Step","Breakpoint","Backtrace"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2013 Chia-Chi Lin"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/46762"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Large-scale networks are among the most complex software infrastructures in existence. Unfortunately, the increasing complexity of its software requirements leads to a rich variety of nondeterministic failure modes and anomalies. Research on testing and debugging modern distributed software has focused on designing comprehensive record and replay systems, but the large volumes of recordings often hinder the efficiency and scalability of these designs. Here, we argue for a different approach. Namely, we take the position that deterministic network execution would vastly simplify the distributed software testing and debugging process. This thesis presents the design and implementation of a network architecture for interactive testing and debugging that provides deterministic network execution of distributed software in highly distributed and dynamic environments. We design efficient and scalable algorithms for both control and data traffics in modern wide-area networks. In addition, we further describe several interactive primitives to reduce the time and effort on testing and debugging of large-scale distributed software. We demonstrate our system's advantages by analyzing nondeterministic ordering and timing bugs in popular real-world distributed software, XORP, Quagga, and lighttpd. Using Rocketfuel topologies and traffic data from a Tier-1 backbone, we show that our design is practical and scalable for interactive fault diagnosis in large networks.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2013-10-17T18:27:33Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Lin_Chia-Chi.pdf: 1529098 bytes, checksum: 1f5cf90b15e069516515b1b6a7776771 (MD5)","Made available in DSpace on 2014-01-16T18:01:35Z (GMT). No. of bitstreams: 2 Chia-Chi_Lin.pdf: 1529098 bytes, checksum: 1f5cf90b15e069516515b1b6a7776771 (MD5) license.txt: 4059 bytes, checksum: 0ada1858e24cc1c479914cb0e8a90005 (MD5)"]},{"key":"dc:title","label":"Title","values":["Use of deterministic execution in testing and debugging of distributed software"]}]}],"canonical_facts":{"dc:contributor":["Caesar, Matthew C.","Torrellas, Josep","Hu, Yih-Chun","Ceze, Luis"],"dc:creator":["Lin, Chia-Chi"],"dc:date":["2014-01-16T18:01:35Z","2013-12"],"dc:description":["Large-scale networks are among the most complex software infrastructures in existence. Unfortunately, the increasing complexity of its software requirements leads to a rich variety of nondeterministic failure modes and anomalies. Research on testing and debugging modern distributed software has focused on designing comprehensive record and replay systems, but the large volumes of recordings often hinder the efficiency and scalability of these designs. Here, we argue for a different approach. Namely, we take the position that deterministic network execution would vastly simplify the distributed software testing and debugging process. This thesis presents the design and implementation of a network architecture for interactive testing and debugging that provides deterministic network execution of distributed software in highly distributed and dynamic environments. We design efficient and scalable algorithms for both control and data traffics in modern wide-area networks. In addition, we further describe several interactive primitives to reduce the time and effort on testing and debugging of large-scale distributed software. We demonstrate our system's advantages by analyzing nondeterministic ordering and timing bugs in popular real-world distributed software, XORP, Quagga, and lighttpd. Using Rocketfuel topologies and traffic data from a Tier-1 backbone, we show that our design is practical and scalable for interactive fault diagnosis in large networks.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2013-10-17T18:27:33Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Lin_Chia-Chi.pdf: 1529098 bytes, checksum: 1f5cf90b15e069516515b1b6a7776771 (MD5)","Made available in DSpace on 2014-01-16T18:01:35Z (GMT). No. of bitstreams: 2 Chia-Chi_Lin.pdf: 1529098 bytes, checksum: 1f5cf90b15e069516515b1b6a7776771 (MD5) license.txt: 4059 bytes, checksum: 0ada1858e24cc1c479914cb0e8a90005 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/46762"],"dc:language":["en"],"dc:rights":["Copyright 2013 Chia-Chi Lin"],"dc:subject":["Deterministic Execution","Distributed Testing","Distributed Debugging","Speculative Execution","Synchronized Clocks","Single-Step","Breakpoint","Backtrace"],"dc:title":["Use of deterministic execution in testing and debugging of distributed software"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:36Z"}