gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r15353 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r15353 - gnunet/src/fs
Date: Mon, 30 May 2011 17:33:19 +0200

Author: grothoff
Date: 2011-05-30 17:33:19 +0200 (Mon, 30 May 2011)
New Revision: 15353

Modified:
   gnunet/src/fs/gnunet-service-fs_cp.c
   gnunet/src/fs/gnunet-service-fs_pe.c
   gnunet/src/fs/gnunet-service-fs_pr.c
Log:
track performance data

Modified: gnunet/src/fs/gnunet-service-fs_cp.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_cp.c        2011-05-30 15:32:44 UTC (rev 
15352)
+++ gnunet/src/fs/gnunet-service-fs_cp.c        2011-05-30 15:33:19 UTC (rev 
15353)
@@ -1177,6 +1177,10 @@
              return NULL;
            }
          /* existing request has lower TTL, drop old one! */
+         GNUNET_STATISTICS_update (GSF_stats,
+                                   gettext_noop ("# P2P searches active"),
+                                   -1,
+                                   GNUNET_NO);
          priority += prd->priority;
          GSF_pending_request_cancel_ (pr);
          GNUNET_assert (GNUNET_YES ==
@@ -1217,7 +1221,7 @@
                                                   peerreq,
                                                   
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
   GNUNET_STATISTICS_update (GSF_stats,
-                           gettext_noop ("# P2P searches received"),
+                           gettext_noop ("# P2P query messages received and 
processed"),
                            1,
                            GNUNET_NO);
   GNUNET_STATISTICS_update (GSF_stats,

Modified: gnunet/src/fs/gnunet-service-fs_pe.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_pe.c        2011-05-30 15:32:44 UTC (rev 
15352)
+++ gnunet/src/fs/gnunet-service-fs_pe.c        2011-05-30 15:33:19 UTC (rev 
15353)
@@ -119,8 +119,18 @@
  */
 static struct GNUNET_CONTAINER_MultiHashMap *plans;
 
+/**
+ * Sum of all transmission counters (equals total delay for all plan entries).
+ */
+static unsigned long long total_delay;
 
 /**
+ * Number of plan entries.
+ */
+static unsigned long long plan_count;
+
+
+/**
  * Figure out when and how to transmit to the given peer.
  *
  * @param cls the 'struct GSF_ConnectedPeer' for transmission
@@ -142,15 +152,19 @@
       struct GSF_RequestPlan *rp)
 {
   struct GSF_PendingRequestData *prd;
+  struct GNUNET_TIME_Relative delay;
 
+  GNUNET_STATISTICS_set (GSF_stats,
+                        gettext_noop ("# average retransmission delay (ms)"),
+                        total_delay * 1000LL / plan_count,
+                        GNUNET_NO);
   prd = GSF_pending_request_get_data_ (rp->pr);
   // FIXME: calculate 'rp->earliest_transmission'!
-  // FIXME: claculate 'rp->priority'! 
+  // FIXME: claculate 'rp->priority'!  
+  delay = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS,
+                                        rp->transmission_counter);
   rp->earliest_transmission 
-    = GNUNET_TIME_relative_to_absolute 
-    (GNUNET_TIME_relative_multiply 
-     (GNUNET_TIME_UNIT_SECONDS,
-      rp->transmission_counter));
+    = GNUNET_TIME_relative_to_absolute (delay);
 #if DEBUG_FS
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Earliest (re)transmission for `%s' in %us\n",
@@ -215,6 +229,7 @@
   rp->hn = NULL;
   rp->last_transmission = GNUNET_TIME_absolute_get ();
   rp->transmission_counter++;
+  total_delay++;
 #if DEBUG_FS
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
              "Executing plan %p executed %u times, planning retransmission\n",
@@ -222,6 +237,10 @@
              rp->transmission_counter);
 #endif    
   plan (pp, rp);
+  GNUNET_STATISTICS_update (GSF_stats,
+                           gettext_noop ("# queries messages sent to other 
peers"),
+                           1,
+                           GNUNET_NO);
   return msize;
 }
 
@@ -330,6 +349,11 @@
                                         
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
     }
   prd = GSF_pending_request_get_data_ (pr);
+  plan_count++;
+  GNUNET_STATISTICS_update (GSF_stats,
+                           gettext_noop ("# query plan entries"),
+                           1,
+                           GNUNET_NO);
   rp = GNUNET_malloc (sizeof (struct GSF_RequestPlan));
 #if DEBUG_FS
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -381,6 +405,7 @@
       GNUNET_CONTAINER_DLL_remove (prd->rp_head,
                                   prd->rp_tail,
                                   rp);
+      plan_count--;
       GNUNET_free (rp);
     }
   GNUNET_CONTAINER_heap_destroy (pp->priority_heap);
@@ -390,8 +415,14 @@
       GNUNET_CONTAINER_DLL_remove (prd->rp_head,
                                   prd->rp_tail,
                                   rp);
+      plan_count--;
       GNUNET_free (rp);
     }
+  GNUNET_STATISTICS_set (GSF_stats,
+                        gettext_noop ("# query plan entries"),
+                        plan_count,
+                        GNUNET_NO);
+
   GNUNET_CONTAINER_heap_destroy (pp->delay_heap);
   GNUNET_free (pp);
 }
@@ -416,8 +447,13 @@
       GNUNET_CONTAINER_DLL_remove (prd->rp_head,
                                   prd->rp_tail,
                                   rp);
+      plan_count--;
       GNUNET_free (rp);
     }
+  GNUNET_STATISTICS_set (GSF_stats,
+                        gettext_noop ("# query plan entries"),
+                        plan_count,
+                        GNUNET_NO);  
 }
 
 

Modified: gnunet/src/fs/gnunet-service-fs_pr.c
===================================================================
--- gnunet/src/fs/gnunet-service-fs_pr.c        2011-05-30 15:32:44 UTC (rev 
15352)
+++ gnunet/src/fs/gnunet-service-fs_pr.c        2011-05-30 15:33:19 UTC (rev 
15353)
@@ -1146,6 +1146,12 @@
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                  "No further local responses available.\n");
 #endif
+      if ( (pr->public_data.type == GNUNET_BLOCK_TYPE_FS_DBLOCK) ||
+          (pr->public_data.type == GNUNET_BLOCK_TYPE_FS_IBLOCK) )
+       GNUNET_STATISTICS_update (GSF_stats,
+                                 gettext_noop ("# requested DBLOCK or IBLOCK 
not found"),
+                                 1,
+                                 GNUNET_NO);
       goto check_error_and_continue;
     }
 #if DEBUG_FS
@@ -1174,7 +1180,17 @@
                                            anonymity, expiration, uid, 
                                            &process_local_reply,
                                            pr))
-       return; /* we're done */
+       {
+         GNUNET_STATISTICS_update (GSF_stats,
+                                   gettext_noop ("# on-demand lookups 
performed successfully"),
+                                   1,
+                                   GNUNET_NO);
+         return; /* we're done */
+       }
+      GNUNET_STATISTICS_update (GSF_stats,
+                               gettext_noop ("# on-demand lookups failed"),
+                               1,
+                               GNUNET_NO);
       GNUNET_SCHEDULER_cancel (pr->warn_task);
       pr->warn_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES,
                                                    &warn_delay_task,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]