[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [metrics-web/master] Speed up relays-by-country aggregation.
commit cc3afcbd79c441ab56f61804f8cab69589628970
Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date: Thu Jan 12 17:26:36 2012 +0100
Speed up relays-by-country aggregation.
---
db/tordir.sql | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/db/tordir.sql b/db/tordir.sql
index 4e4e4b5..6d3b617 100644
--- a/db/tordir.sql
+++ b/db/tordir.sql
@@ -531,15 +531,22 @@ CREATE OR REPLACE FUNCTION refresh_relay_countries() RETURNS INTEGER AS $$
(date, country, relays)
SELECT date, country, relays / count AS relays
FROM (
- SELECT DATE(validafter),
+ SELECT date,
COALESCE(lower((geoip_lookup(address)).country), ''zz'')
AS country,
- COUNT(*) AS relays
- FROM statusentry
- WHERE isrunning = TRUE
- AND validafter >= ''' || min_date || '''
- AND validafter < ''' || max_date || '''
- AND DATE(validafter) IN (SELECT date FROM updates)
+ SUM(relays) AS relays
+ FROM (
+ SELECT DATE(validafter) AS date,
+ fingerprint,
+ address,
+ COUNT(*) AS relays
+ FROM statusentry
+ WHERE isrunning = TRUE
+ AND validafter >= ''' || min_date || '''
+ AND validafter < ''' || max_date || '''
+ AND DATE(validafter) IN (SELECT date FROM updates)
+ GROUP BY 1, 2, 3
+ ) c
GROUP BY 1, 2
) b
NATURAL JOIN relay_statuses_per_day';
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits