]> git.mxchange.org Git - quix0rs-apt-p2p.git/blobdiff - apt_p2p_Khashmir/db.py
Increase the concurrency of DHT requests to 8.
[quix0rs-apt-p2p.git] / apt_p2p_Khashmir / db.py
index 47e974cf62122bab33cd4b4a4868a92e873bf822..d0433e04ea0fe3232d4d09cc5bc2043a135c5995 100644 (file)
@@ -103,7 +103,7 @@ class DB:
         c = self.conn.cursor()
         c.execute("DELETE FROM nodes WHERE id NOT NULL")
         for bucket in buckets:
-            for node in bucket.l:
+            for node in bucket.nodes:
                 c.execute("INSERT INTO nodes VALUES (?, ?, ?)", (khash(node.id), node.host, node.port))
         self.conn.commit()
         
@@ -148,6 +148,24 @@ class DB:
         c.execute("DELETE FROM kv WHERE last_refresh < ?", (t, ))
         self.conn.commit()
         
+    def keyStats(self):
+        """Count the total number of keys and values in the database.
+        @rtype: (C{int}, C{int})
+        @return: the number of distinct keys and total values in the database
+        """
+        c = self.conn.cursor()
+        c.execute("SELECT COUNT(value) as num_values FROM kv")
+        values = 0
+        row = c.fetchone()
+        if row:
+            values = row[0]
+        c.execute("SELECT COUNT(key) as num_keys FROM (SELECT DISTINCT key FROM kv)")
+        keys = 0
+        row = c.fetchone()
+        if row:
+            keys = row[0]
+        return keys, values
+
 class TestDB(unittest.TestCase):
     """Tests for the khashmir database."""
     
@@ -164,6 +182,7 @@ class TestDB(unittest.TestCase):
         
     def test_Value(self):
         self.store.storeValue(self.key, self.key)
+        self.failUnlessEqual(self.store.countValues(self.key), 1)
         val = self.store.retrieveValues(self.key)
         self.failUnlessEqual(len(val), 1)
         self.failUnlessEqual(val[0], self.key)
@@ -190,7 +209,7 @@ class TestDB(unittest.TestCase):
         dummy2.port = 12345
         class bl:
             def __init__(self):
-                self.l = []
+                self.nodes = []
         bl1 = bl()
         bl1.l.append(dummy())
         bl2 = bl()