[Checkins] SVN: gocept.zeoraid/branches/distributed-remote-calls/src/gocept/zeoraid/storage.py Patch to seed a custom random number generator to ensure randomness

Dirceu Pereira Tiegs dirceutiegs at gmail.com
Wed Jun 18 17:46:16 EDT 2008


Log message for revision 87534:
  Patch to seed a custom random number generator to ensure randomness

Changed:
  U   gocept.zeoraid/branches/distributed-remote-calls/src/gocept/zeoraid/storage.py

-=-
Modified: gocept.zeoraid/branches/distributed-remote-calls/src/gocept/zeoraid/storage.py
===================================================================
--- gocept.zeoraid/branches/distributed-remote-calls/src/gocept/zeoraid/storage.py	2008-06-18 17:38:20 UTC (rev 87533)
+++ gocept.zeoraid/branches/distributed-remote-calls/src/gocept/zeoraid/storage.py	2008-06-18 21:46:07 UTC (rev 87534)
@@ -150,6 +150,11 @@
         # No storage is recovering initially
         self.storage_recovering = None
 
+        # Seed a custom random number generator used for distributing requests among storages
+        self._rng = random.Random()
+	    t = TimeStamp(*time.gmtime(time.time())[:5])
+        self._rng.seed(t)
+
     # IStorage
 
     def close(self):
@@ -621,7 +626,7 @@
         while not reliable:
             if not storages:
                 break
-            name = random.choice(storages)
+            name = self._rng.choice(storages)
             storages.remove(name)
             reliable, result = self.__apply_storage(
                 name, method_name, args, kw)



More information about the Checkins mailing list