コード例 #1
0
ファイル: shelver.py プロジェクト: kyonetca/P2PDNS
 def change_in_responsibility(self, new_pred_key, my_key):
     self.own_start = new_pred_key
     self.own_end = my_key
     backup = {}
     self.write_lock.acquire()
     records = shelve.open(self.db)
     for k in records.keys():
         k_key = hash_util.Key(k)
         if not node.I_own_hash(k_key):
             backup[k] = records[k]
     msgbuckets = {}
     for k in backup.keys():
         k_key = hash_util.Key(k)
         best_foward = node.find_ideal_forward(k_key)
         if best_foward in msgbuckets.keys():
             msgbuckets[best_foward][k] = backup[k]
         else:
             msgbuckets[best_foward] = {}
             msgbuckets[best_foward][k] = backup[k]
     for n in msgbuckets.keys():
         if n != self.owner:
             newmsg = Database_Backup_Message(self.owner, msgbuckets[n])
             self.send_message(newmsg, n)
     records.close()
     self.write_lock.release()
コード例 #2
0
ファイル: shelver.py プロジェクト: BrendanBenshoof/P2PDNS
 def change_in_responsibility(self,new_pred_key, my_key):
     self.own_start = new_pred_key
     self.own_end = my_key
     backup = {}
     self.write_lock.acquire()
     records = shelve.open(self.db)
     for k in records.keys():
         k_key = hash_util.Key(k)
         if not node.I_own_hash(k_key):
             backup[k] = records[k]
     msgbuckets = {}
     for k in backup.keys():
         k_key = hash_util.Key(k)
         best_foward = node.find_ideal_forward(k_key)
         if best_foward in msgbuckets.keys():
             msgbuckets[best_foward][k] = backup[k]
         else:
             msgbuckets[best_foward] = {}
             msgbuckets[best_foward][k] = backup[k]
     for n in msgbuckets.keys():
         if n != self.owner:
             newmsg = Database_Backup_Message(self.owner, msgbuckets[n])
             self.send_message(newmsg,n)
     records.close()
     self.write_lock.release()
コード例 #3
0
ファイル: map_reduce.py プロジェクト: BrendanBenshoof/P2PDNS
def disribute_fairly(atoms):
    distribution = {}
    for a in atoms:
        if node.I_own_hash(a.hashkeyID):
            dest = node.thisNode
        else:
            dest = node.find_ideal_forward(a.hashkeyID)
        try:
            distribution[dest].append(a)
        except KeyError:
            distribution[dest] = [a]
    return distribution
コード例 #4
0
ファイル: map_reduce.py プロジェクト: kyonetca/P2PDNS
def disribute_fairly(atoms):
    distribution = {}
    for a in atoms:
        if node.I_own_hash(a.hashkeyID):
            dest = node.thisNode
        else:
            dest = node.find_ideal_forward(a.hashkeyID)
        try:
            distribution[dest].append(a)
        except KeyError:
            distribution[dest] = [a]
    return distribution