We have some sophisticated infrastructure that allows us to simulate many peer-to-peer systems, scaling up to millions of nodes in size. The nodes in our simulation run the exact same DRT binary that ships with Windows 7. We can simulate a number of different systems – small networks where nodes come and go, large networks that remain stable, even networks where nodes behave maliciously or drop offline without warning.
In this entry, we’ll focus on two performance metrics (resolve success rate and average hopcount), in two scenarios (stable cloud and dynamic cloud).
. Resolve success rate: # successfully resolved keys/ # issued resolutions
. Average hops: average number of nodes that must be contacted in order to resolve a key
Scenario 1: Stable network with low churn (a private enterprise network or a data center)
In this scenario, the network is stable. Machines rarely join/leave. They stay in network, register/unregister keys, and search for other keys. Here is the result of one sample simulation with 2000 DRT instances (nodes). It shows that the resolve success rate is always above 99.9% (Figure 1), and keys can be found within about 3 hops (Figure 2).
Scenario 2: Network with high churn (an Internet DHT)
Applications deployed in Internet may experience churn: machines can leave, join, or suddenly fail. To understand the performance of the DRT when the system is very dynamic, we simulate higher churn rates than we expect in reality. Nodes frequently join and leave the system. 20% of nodes disappear suddenly – disconnecting without notifying others. The simulations show the DRT maintains a high resolve success rate (>98.5%) (Figure 3) even under such adverse conditions. Searches complete within 6 hops on average (Figure 4), which indicates DRT cache is well maintained.