Front Matter
Part I General
1 Elements
1.1 Top Systems Conferences/Journals
1.2 How to Read a Research Paper
1.3 How to Write a Research Paper
1.3.1 Abstract
1.3.2 Introduction
1.3.3 Background Information/Problem Statement
1.3.4 Your Approach
1.3.5 Implementation
1.3.6 Performance Evaluation
1.3.7 Related Work
1.3.8 Conclusions
1.3.9 Acknowledgement
1.3.10 References
1.3.11 Most Common Mistakes in Paper Writing
1.4 How to Give a Presentation
1.4.1 General Approach
1.4.2 Understanding the Paper
1.4.3 Adapting the Paper for Presentation
1.4.4 Slides
1.4.5 The Dry-Run
1.4.6 To Memorize or not to Memorize?
1.4.7 You Are on the Stage
1.4.8 Interacting with the Audience and Dealing with Questions
1.5 Final Words: On Being a Scientist
References
2 Rules of Thumb
2.1 Rules of Thumb
2.2 Further Readings
References
Part II Design
3 Bloom Filters
3.1 Introduction
3.2 Standard Bloom Filters
3.2.1 Basic Idea of Bloom Filters
3.2.2 False Positive Rate Estimation
3.2.3 Optimal Number of Hash Functions
3.2.4 Another Method of Implementing
3.3 Counting Bloom Filters
3.4 Compressed Bloom Filters
3.5 D -left Counting Bloom Filters
3.5.1 D-left Hashing
3.5.2 D-left Counting Bloom Filters
3.5.3 Performance
3.6 Spectral Bloom Filters
3.6.1 Basic Principle of SBF
3.6.2 SBF Frequency Query Optimization
3.7 Dynamic Counting Bloom Filters
3.8 Case Studies
3.8.1 Case Study 1: Summary Cache
3.8.2 Case Study 2: IP Traceback
3.9 Conclusion
References
4 Distributed Hash Tables
4.1 Introduction
4.2 An Overview of DHT
4.3 The Overlay Network of DHT
4.4 Chord: An Implementation of DHT
4.4.1 Topology of Chord
4.4.2 Key Lookup in Chord
4.4.3 Dynamic Updates and Failure Recovery
4.5 Case Study 1: Cooperative Domain Name System (CoDoNS)
4.5.1 Background and Motivation
4.5.2 Overview of the System
4.5.3 DHT in CoDoNS
4.5.4 Evaluation
4.6 Case Study 2: Cooperative File System (CFS)
4.6.1 Background and Motivation
4.6.2 Overview of the System
4.6.3 DHT in CFS
4.6.4 Evaluation
References
5 Locality Sensitive Hashing
5.1 Introduction
5.1.1 Basic Idea of LSH
5.1.2 The Origin of LSH
5.2 Overview
5.2.1 The Definition
5.2.2 Properties of LSH
5.2.3 Several LSH Families
5.2.4 Approximate Nearest Neighbor
5.3 Case Study 1: Large-Scale Sequence Comparison
5.3.1 Theory
5.3.2 Algorithm Complexity
5.3.3 Implementation Details
5.3.4 Results
5.4 Case Study 2: Image Retrieval
5.4.1 Motivation
5.4.2 The Problems of Existing Approaches
5.4.3 The System
5.4.4 Results
References
6 XOR Operations
6.1 Introduction
6.2 XOR Operation
6.2.1 Truth Table
6.2.2 Set Diagrams
6.3 XOR Properties
6.4 Compress with XOR
6.4.1 Case Study 1: XOR-linked list
6.4.2 Case Study 2: XOR swap algorithm
6.5 Fault Tolerance
6.5.1 Case Study 3: Hamming (7,4) code
6.5.2 Hamming Codes with Additional Parity
6.5.3 Case Study 4: RAID
6.6 Case Study 5: Feistel Cipher
6.7 Case Study 6: Kademlia
6.7.1 XOR Metric in Kademlia
6.7.2 Routing Table in Kademlia
6.7.3 Kademlia Protocol
6.8 Conclusion
References
7 Adaptation
7.1 Introduction
7.2 How Adaptation Works and Key Issues
7.2.1 How Does Adaptation Work?
7.2.2 Classification of Adaptation
7.3 Case Studies
7.3.1 Case Study 1: Adaption in Internet Routing System
7.3.2 Case Study 2: Adaptive Self-Configuration for Sensor Networks
References
8 Optimistic Replication
8.1 Introduction
8.2 Topic Description
8.2.1 Design Considerations
8.2.2 Techniques and Algorithms
8.3 Case Studies
8.3.1 Case Study 1: The Notes System
8.3.2 Case Study 2: The Bayou system
References
9 Reputation and Trust
9.1 Introduction
9.2 Reputation Systems: Challenges and Models
9.2.1 Challenges
9.2.2 Reputation Models
9.2.3 Threat Model
9.3 Comparison of Representative Work
9.4 Case Studies
9.4.1 Case Study 1: EigenTrust
9.4.2 Case Study 2: HOURS
9.5 Conclusion
References
10 Moving Average
10.1 Introduction
10.2 Topic Description
10.2.1 Simple Moving Average
10.2.2 Cumulative Moving Average
10.2.3 Weighted Moving Average
10.2.4 Exponential Weighted Moving Average
10.3 Case Study 1: Attacks Detection
10.3.1 Introduction of Denial of Service Attack
10.3.2 Anomalies Detection
10.3.3 SYN Flooding Detection
10.3.4 Other Methods
10.4 Case Study 2: Machine Monitoring Technique
10.5 Case Study 3: Data Cleaning in Wireless Sensor Networks
10.6 Conclusion
References
11 Machine Learning
11.1 Machine Learning Concepts
11.1.1 Concepts and History
11.2 Introduction of Machine Learning
11.2.1 A Typical Machine Learning Problem
11.2.2 Machine Learning in Computer Systems Research
11.3 Machine Learning Techniques
11.3.1 Category
11.3.2 Machine Learning Techniques and Algorithms
11.4 Case Studies
11.4.1 Case Study 1: Large-Scale System Problem Detection
11.4.2 Case Study 2: Snitch
11.5 Conclusion
References
Part III Implementation
12 Asynchronous I/O
12.1 Motivation
12.2 I/O Multiplexing
12.3 Asynchronous I/O
12.3.1 Linux Asynchronous I/O
12.3.2 Windows Overlapped I/O
12.4 Conclusion
References
13 Multithreading
13.1 Background
13.2 The Concept of Thread
13.3 Hardware Support for Multithreading
13.3.1 Block Multithreading
13.3.2 Interleaved Multithreading
13.3.3 Simultaneous Multithreading
13.4 Multithreading Programming
13.4.1 POSIX Threads (Pthreads)
13.4.2 JAVA Threads
13.4.3 WIN32 Threads
13.4.4 Common APIs
13.5 Multithreading Synchronization
13.5.1 Multithreading Synchronization Problems
13.5.2 Mutual Exclusion
13.5.3 Solutions of Mutual Exclusion
13.5.4 Mutual Exclusion Cases
13.6 Case Studies
13.7 Conclusion
References
14 Virtualization
14.1 Virtualization Definitions
14.2 A Brief History of Virtualization
14.2.1 The Mainframe Virtualization
14.2.2 The x86 Virtualization
14.3 Why Virtualization?
14.4 Virtualization Capabilities
14.5 The Benefits of Virtualization
14.5.1 Increasing Utilization
14.5.2 Reducing Cost
14.5.3 Isolation
14.5.4 Improving Application Development Process
14.5.5 Business Continuity
14.5.6 Manageability, Scalability and Flexibility
14.6 Types of Virtualization
14.7 Virtualization Vendors and Products
14.8 Case Studies
14.8.1 Case Study 1: JVM
14.8.2 Case Study 2: VirtualPower
14.9 Issues of Virtualization
14.9.1 Issues of Adopting Virtualization
14.9.2 Issues of Providing Virtualization
References
Part IV Evaluation
15 Queueing Theory
15.1 Introduction
15.1.1 Queueing Models
15.2 Fundamental Concepts
15.2.1 Useful Probability Distributions
15.2.2 Markov Chain
15.3 Queueing Systems
15.3.1 Markovian Queues
15.3.2 Non-Markovian Queues
15.4 Queueing Networks
15.5 Case Studies
15.5.1 Case Study 1: Telephone Systems
15.5.2 Case Study 2: A Barber Shop
References
16 Black Box Testing
16.1 Introduction
16.2 Black Box Testing Techniques
16.2.1 Equivalence Partitioning
16.2.2 Boundary Value Analysis
16.2.3 Decision Table Testing
16.2.4 Pairwise Testing
16.2.5 State Transition Tables
16.2.6 Use Case Testing
16.3 Other Methods of Software Testing
16.4 Case Studies
16.4.1 Case Study 1: Web Services
16.4.2 Case Study 2: MobileTest
References
17 Goodness-of-Fit
17.1 Introduction
17.2 General Topics in Goodness-of-Fit
17.2.1 Hypothesis Testing
17.2.2 Definition
17.2.3 Common Problems in Goodness-of-Fit Tests
17.2.4 Quantitative Goodness-of-fit Techniques
17.3 Chi-Square Test
17.3.1 Meaning of the Chi-Square Test
17.3.2 Definition of Chi-Square
17.4 Kolmogorov-Smirnov test
17.4.1 How Does K-S Test Work?
17.4.2 Comparison of Chi-Square and Kolmogorov-Smirnov Tests
17.5 Case Studies
17.5.1 Case Study 1: Object Characteristics of Dynamic Web Content
17.5.2 Case Study 2: Failures in High-Performance Computing Systems
References
Index
版权