Hi all,

I mentioned in an earlier email that we have been preparing a rather major 
revision to our initial sizing tech note.  As we mentioned in this thread, and 
in the tech note itself, we are very much interested in feedback,.  To that 
end, a number of comments from people (on and off list) were very helpful in 
correcting some of our thinking, and informing some of our analyses, thank you!

With apologies for the protracted delay, the new tech note is now available at:
        http://techreports.verisignlabs.com/tr-lookup.cgi?trid=1120005&rev=2

Some of the more substantial changes are:
- Our core formulation for estimating the number of objects changed according 
to feedback from people on the list.
- We added a treatise on ``deadline'' scheduling (i.e. what do things look like 
if RPKI crawls have to be done in $t$ seconds).
- We removed the x2 factor from our introduction and conclusions (as people on 
the list felt that this was not well supported).
- We broach the almost doubling of time estimates that the RPKI will undergo 
during algorithm rollover periods (``months or years'' in duration).
- We summarized our findings a bit more.

There are other changes throughout, but we continue to feel that a living 
document like this one is critical to understanding the way in which a global 
RPKI may be likely to perform, and informing the community.

Ultimately, with the measurements that we have seen today, we still calculate 
crawl times taking between about 15 and 30 days.  The section on deadline 
scheduling essentially finds that if we are to be able to reliably count on 
crawls from all RP caches (throughout the Internet) being done by 24 hours, the 
average repository in the global RPKI has to be orders of magnitude faster than 
the measurements we have seen.  

Thanks,

Eric

PS - In the spirit of full transparency, I have attached the _incredibly_ 
complicated script that generated our Figure 1... ;)

#!/usr/bin/perl -w

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

use strict;

sub _usage
{
  print("rpki-calc-2.pl <object count> <router object count> <Repo count[,<repo count2>[, <...> ] ]> <seconds / object> [ <graph file> ] | -h\n");
}

my $iObjCount = shift;
my $iRouterObjCount = shift;
my $sRepoCount = shift;
my $fSecObj = shift;
my $sPrint = shift;

if (!defined($iObjCount))
{
  warn("No Object count specified.");
  _usage();
}
elsif ("-h" eq $iObjCount)
{
  _usage();
}
elsif (!defined($iRouterObjCount))
{
  warn("No RouterObj count specified.");
  _usage();
}
elsif (!defined($sRepoCount))
{
  warn("No Repo count specified.");
  _usage();
}
elsif (!defined($fSecObj))
{
  warn("No seconds/obj defined");
  _usage();
}
else
{
  my $sTmpFile = "-";
  if (defined($sPrint))
  {
    $sTmpFile = "./tmp-rpki-sizing-" . time() . ".out";
  }

  if (!open(OUT, "> $sTmpFile"))
  {
    warn("Unable to open output '$sTmpFile': $!");
  }
  else
  {
    my @lRepoCount = split(/,/, $sRepoCount);

    foreach my $iRepoCount (@lRepoCount)
    {
      my $iTmpObjCount = $iObjCount + $iRepoCount;
      my $iTime = ($iTmpObjCount + $iRepoCount) * $fSecObj;

      my $fDays = $iTime / 86400;

      print(OUT "$iRepoCount $iTmpObjCount $iTime $fDays ");

      $iTmpObjCount += $iRouterObjCount;
      $iTime = ($iTmpObjCount + $iRepoCount) * $fSecObj;
      $fDays = $iTime / 86400;

      print(OUT "$iTmpObjCount $iTime $fDays\n");
    }

    if ("-" ne $sTmpFile)
    {
      close(OUT);

      my $sCmd = "
set term pdf fsize 9 linewidth 3.0
set out '$sPrint'
set key left top
set ylabel 'Days (without Router Certs)'
set y2label 'Days (with Router Certs)'
set xlabel 'Global Number of Repositories'
set grid
set y2tics
plot '$sTmpFile' u 1:4 title 'Without Router Certs' w lp lw 3,'' u 1:7 title 'With Router Certs' axes x1y2 w lp lw 3
  ";

      system("echo \"$sCmd\" | gnuplot");
      unlink($sTmpFile);
    }
  }
}

_______________________________________________
sidr mailing list
sidr@ietf.org
https://www.ietf.org/mailman/listinfo/sidr

Reply via email to