Package freenet.support.math

Examples of freenet.support.math.RunningAverage


    // actually we’d want to convert uptime to seconds here but this is results in better accuracy.
    return getSentOverhead() * SECONDS.toMillis(1) / uptime;
  }

  public synchronized void successfulBlockReceive(boolean realTimeFlag, boolean isLocal) {
    RunningAverage blockTransferPSuccess = realTimeFlag ? blockTransferPSuccessRT : blockTransferPSuccessBulk;
    blockTransferPSuccess.report(1.0);
    if(isLocal)
      blockTransferPSuccessLocal.report(1.0);
    if(logMINOR) Logger.minor(this, "Successful receives: "+blockTransferPSuccess.currentValue()+" count="+blockTransferPSuccess.countReports()+" realtime="+realTimeFlag);
  }
View Full Code Here


  public synchronized void failedBlockReceive(boolean normalFetch, boolean timeout, boolean realTimeFlag, boolean isLocal) {
    if(normalFetch) {
      blockTransferFailTimeout.report(timeout ? 1.0 : 0.0);
    }
    RunningAverage blockTransferPSuccess = realTimeFlag ? blockTransferPSuccessRT : blockTransferPSuccessBulk;
    blockTransferPSuccess.report(0.0);
    if(isLocal)
      blockTransferPSuccessLocal.report(0.0);
    if(logMINOR) Logger.minor(this, "Successful receives: "+blockTransferPSuccess.currentValue()+" count="+blockTransferPSuccess.countReports()+" realtime="+realTimeFlag);
  }
View Full Code Here

    int cycleNumber = 0;
    int lastSwaps = 0;
    int lastNoSwaps = 0;
    int failures = 0;
    int successes = 0;
    RunningAverage avg = new SimpleRunningAverage(100, 0.0);
    RunningAverage avg2 = new BootstrappingDecayingRunningAverage(0.0, 0.0, 1.0, 100, null);
    int pings = 0;
    for(int total = 0; total < maxTests; total++) {
      cycleNumber++;
      try {
        Thread.sleep(sleepTime);
      } catch(InterruptedException e) {
        // Ignore
      }
      for(int i = 0; i < nodes.length; i++) {
        System.err.println("Cycle " + cycleNumber + " node " + i + ": " + nodes[i].getLocation());
      }
      int newSwaps = LocationManager.swaps;
      int totalStarted = LocationManager.startedSwaps;
      int noSwaps = LocationManager.noSwaps;
      System.err.println("Swaps: " + (newSwaps - lastSwaps));
      System.err.println("\nTotal swaps: Started*2: " + totalStarted * 2 + ", succeeded: " + newSwaps + ", last minute failures: " + noSwaps +
        ", ratio " + (double) noSwaps / (double) newSwaps + ", early failures: " + ((totalStarted * 2) - (noSwaps + newSwaps)));
      System.err.println("This cycle ratio: " + ((double) (noSwaps - lastNoSwaps)) / ((double) (newSwaps - lastSwaps)));
      lastNoSwaps = noSwaps;
      System.err.println("Swaps rejected (already locked): " + LocationManager.swapsRejectedAlreadyLocked);
      System.err.println("Swaps rejected (nowhere to go): " + LocationManager.swapsRejectedNowhereToGo);
      System.err.println("Swaps rejected (rate limit): " + LocationManager.swapsRejectedRateLimit);
      System.err.println("Swaps rejected (recognized ID):" + LocationManager.swapsRejectedRecognizedID);
      System.err.println("Swaps failed:" + LocationManager.noSwaps);
      System.err.println("Swaps succeeded:" + LocationManager.swaps);

      double totalSwapInterval = 0.0;
      double totalSwapTime = 0.0;
      for(int i = 0; i < nodes.length; i++) {
        totalSwapInterval += nodes[i].lm.getSendSwapInterval();
        totalSwapTime += nodes[i].lm.getAverageSwapTime();
      }
      System.err.println("Average swap time: " + (totalSwapTime / nodes.length));
      System.err.println("Average swap sender interval: " + (totalSwapInterval / nodes.length));

      waitForAllConnected(nodes);

      lastSwaps = newSwaps;
      // Do some (routed) test-pings
      for(int i = 0; i < 10; i++) {
        try {
          Thread.sleep(sleepTime);
        } catch(InterruptedException e1) {
        }
        try {
          Node randomNode = nodes[random.nextInt(nodes.length)];
          Node randomNode2 = randomNode;
          while(randomNode2 == randomNode) {
            randomNode2 = nodes[random.nextInt(nodes.length)];
          }
          double loc2 = randomNode2.getLocation();
          Logger.normal(RealNodeRoutingTest.class, "Pinging " + randomNode2.getDarknetPortNumber() + " @ " + loc2 + " from " + randomNode.getDarknetPortNumber() + " @ " + randomNode.getLocation());
         
          int hopsTaken = randomNode.routedPing(loc2, randomNode2.getDarknetPubKeyHash());
          pings++;
          if(hopsTaken < 0) {
            failures++;
            avg.report(0.0);
            avg2.report(0.0);
            double ratio = (double) successes / ((double) (failures + successes));
            System.err.println("Routed ping " + pings + " FAILED from " + randomNode.getDarknetPortNumber() + " to " + randomNode2.getDarknetPortNumber() + " (long:" + ratio + ", short:" + avg.currentValue() + ", vague:" + avg2.currentValue() + ')');
          } else {
            totalHopsTaken += hopsTaken;
            successes++;
            avg.report(1.0);
            avg2.report(1.0);
            double ratio = (double) successes / ((double) (failures + successes));
            System.err.println("Routed ping " + pings + " success: " + hopsTaken + ' ' + randomNode.getDarknetPortNumber() + " to " + randomNode2.getDarknetPortNumber() + " (long:" + ratio + ", short:" + avg.currentValue() + ", vague:" + avg2.currentValue() + ')');
          }
        } catch(Throwable t) {
          Logger.error(RealNodeRoutingTest.class, "Caught " + t, t);
        }
      }
View Full Code Here

TOP

Related Classes of freenet.support.math.RunningAverage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.