Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
1. Load the country to region mapping to the hash-table "%region" which uses the country
    names (as defined by PingER) as the index.
    e.g. $region{'Kenya'} = Africa and
           $region{'Korea, Rep'} = East Asia.

 
2. Load the PingER data to the data structure "%data" which uses PingER metrics as the index.

    Here each entry stores a reference to a unique hash-table defined to store the PingER data
    related to a country. Understandably the second hash-table uses country names as the index.
    Each entry of the hash-table stores a reference to another hash-table used for storing
    performance measurements for the country. Here timestamps are used as indices.
    e.g. $data{'minrtt'}->{'Kenya'}->{'1998'},
           $data{'packetloss'}->{'United States'}->{'Oct2008'} and
           $data{'ipdv'}->{'Pakistan'}->{'08Oct27'}
    The metrics used are: minrtt, avgrtt, nthroughput, ipdv, packetloss and unreachability.
 
3. Load the demographics to the data structure "%data" which uses labels as the index.
    Here each entry stores a reference to a unique hash-table defined to store the demographics
    of a country. The second hash-table uses country names as the index. Each entry of
    the hash-table stores a reference to another hash-table used for storing statistics
    for the country. Here timestamps are used as indices.
    e.g. $data{'population'}->{'Kenya'}->{'1998'},
           $data{'doi'}->{'United States'}->{'Oct2008'} and
           $data{'inetpenetration'}->{'Pakistan'}->{'08Oct27'}

    The metrics used are: population, inetusers, inetpenetration, doi and hdi.

 
4. Generate the .html file in compliance with the Google Visualization API constraints.
    Here the data is loaded in the following format:
              data.addColumn('string', 'Country');
              data.addColumn('date', 'Month');
              data.addColumn('string', 'Region');
              data.addColumn('number', 'Average RTT (ms)');
              data.addColumn('number', 'Normalized Throughput (Kbps)');
              data.addColumn('number', 'Internet Users (#)');
              data.addColumn('number', 'Internet Penetration (%)');
              data.addColumn('number', 'Population (#)');
              data.addColumn('number', 'Minimum RTT (ms)');
              data.addColumn('number', 'Packet Loss (%)');
              data.addColumn('number', 'Unreachability (%)');
              data.addColumn('number', 'Jitter (ms)');
              data.addColumn('number', 'DOI Index');
              data.addColumn('number', 'HDI Index');
 
    N.B. the data must be uploaded in a chronologically ascending order.
 
5. Create .html files for each vantage point (SLAC, CERN and ICTP)

Miscellaneous Details

  • Tool: The interactive graph was generated using the Google Motion Chart Widget.
  • Data: The data presented here was collected by the PingER project, processed by prmout. The same data is available in tabular format. The statistics of Population were acquired from the U.S. Census Bureau, the country to region mapping was obtained by the geographical database maintained by the PingER project, where as the Internet usage statistics were taken from Internet World Stats. Please note that while all the statistics were acquired over several years (i.e. since 1998), the Internet usage statistics were documented in Nov. 2007.
  • Loading: The time to load and render the web page is largely determined speed of the link, the file length (about a MByte that is determined by the number of metrics and frequency of data points and the number of metrics) and the speed of the client rendering.
  • Metrics: Average RTT (ms), Normalized Throughput (Kbps), Internet Users (#), Internet Penetration (%), Population (#), Minimum RTT (ms), Packet Loss (%), Unreachability (%), Jitter (ms), DOI Index, HDI Index,
  • Authors: Umar Kalim & Les Cottrell 10/10/2008, version 1.3. Idea champion: Shahryar Khan.