Skip to main content

3. KBRTestApp

After developing your own application & overlay next you should play with the KBRTestApp. KBRTestApp is a Tier1 application that tests 3 operations:
  1. OneWayTest - Route an overlay message to a random key & measure one-way hop count & latency. When a message reaches the destination, receiver call a method in the sender to collect statistics (not over the network). A sequence number is attached to a message to prevent collecting statistics of duplicate ones. Intermediate nodes append their addresses to a message while it's being forwarded.
  2. RPCTest - Send RPC call to a random key, wait for response, & then measure one-way hop count & latency. RPC context is used to keep track of destination & whether a message should be considered for statistics.
  3. LookUpTest - Lookup a random key using RPC call & collect latency when response is received. Sends as an internal RPC (sendInternalRpcCall) between two tiers (from application to overlay) using LookupCall messages.Context is used to carry additional data.
One or more tests can be selected by configuring the omnet.ini file. For each test application keeps track of number of messages send, received, & lost. You can also configure either to lookup any random key (within a bound) or only the existing ones. It's possible to issue messages while the network is in init phase. Each message is issued after a delay derived from a truncnormal distribution with a given mean & std.

Next Step
Extend KBRTest to provide more functionality such as:
  • Modify your MyOverlay & use it as the overlay for KBRTestApp.
  • Track hop count for messages & verify different routing types in OverSim

Comments

Popular posts from this blog

1. Building P2P Simulators with OverSim - Where to Begin

This could be a series of blog posts about extending or developing your own OverSim applications & overlay networks. OverSim has a minimal tutorial on writing your own application & overlay network; however, it doesn't show the big picture. So, I'm wasting lots of time playing with code & trying to understand the rest. Good thing is, I like it more & more as I understand. You need to change/develop only a few things, but finding out which ones is a hell of a task. I hope this will not only make my life easy but also will be useful to new comers. Here's what you need to do: You need some background on OMNeT++ OverSim extend OMNeT++. But sometime it has its own way of doing things (to make your task even simple) so understand the differences . Develop several OMNeT++ simulators. TicToc is a good one to start with. Extend it as you imagine. Read Towards a Common API for Structured Peer-to-Peer Overlays , which is the basis for OvseSim's AP

Describing Experimental/Simulation Setup

Sometimes the results of a performance analysis may depend on the computers used and/or specific features of software/libraries. In such cases it is extremely important to describe the experimental/simulation set up in details. It enables others to repeat those experiments as well as check whether the results are rigorous, statistically sound, and unbiased. Unfortunately, "Simulation Setup" is the shortest section in many research papers where authors try to save space by cutting down as much as details. Here are some tips on what to include (in addition to describing the experimental/simulation setup) based on my experiences: Type of Simulation Are the results based on Experimentation , Emulation , or Simulation ? If simulations also mention further details like whether it is Discrete Event , Montacarlo , Stochastic , or Deterministic simulation.  Are the results for Steady , Dynamic , Starting/ramp-up , or Terminating state(s)? Number of Exp

Distributed Systems Mind Map

Though distributed systems are inherently distributed, autonomous, and parallel, all textbooks that I have read so far are boring & serial, going from one topic to another as they are independent topics. Wondering about how best to present all related topics and their relationships in my class, I came up with the following mind map. I was able to explain most of the key concepts using a single example of a web-based business that started selling flowers. It was a student who suggested that we consider selling flowers. It turned out to be a good example, as there had to be a connection to the physical world where the business also needed a geographical distributed delivery system. Taught of sharing the mind map. Though most of those branches can be broken down further this level of detailed was sufficient for my class (by the way it took 1 hour to finish the discussion on this slide). Distributed Systems Mind Map