On Tue, Oct 20, 2015 at 05:07:26PM +0200, Patrick Uiterwijk wrote: > Hi all, > > Since my patch of last night with deep copying the in-memory netblock database was a > disaster due to performance issues, I have been working on an improved patch which > avoids changing the in-memory database entirely. > > The following patch uses a function that was added in py-radix 0.8 to do exactly that, > and after deploying an updated py-radix and this patch in staging it's been working > just fine. > > Could I get +1's to both update py-radix and apply the below patch? > I will make sure to first update one and only if that works deploy it further. > > Patch: > > > From 5bfdeebd42f9d52a1fa2326bcd9b0eb71e4d8e32 Mon Sep 17 00:00:00 2001 > From: Patrick Uiterwijk <puiterwijk@xxxxxxxxxx> > Date: Tue, 20 Oct 2015 05:58:57 +0200 > Subject: [PATCH] Use search_covering in radix to avoid having to modify the > tree > > Signed-off-by: Patrick Uiterwijk <puiterwijk@xxxxxxxxxx> > --- > mirrorlist/mirrorlist_server.py | 8 ++------ > requirements_mirrorlist.txt | 2 +- > 2 files changed, 3 insertions(+), 7 deletions(-) > > diff --git a/mirrorlist/mirrorlist_server.py b/mirrorlist/mirrorlist_server.py > index a8adcf0..3344e4e 100755 > --- a/mirrorlist/mirrorlist_server.py > +++ b/mirrorlist/mirrorlist_server.py > @@ -206,8 +206,7 @@ def tree_lookup(tree, ip, field, maxResults=None): > len_data = 0 > if ip is None: > return result > - node = tree.search_best(ip.strNormal()) > - while node is not None: > + for node in tree.search_covering(ip.strNormal()): > prefix = node.prefix > if type(node.data[field]) == list: > len_data += len(node.data[field]) > @@ -215,10 +214,7 @@ def tree_lookup(tree, ip, field, maxResults=None): > len_data += 1 > t = (prefix, node.data[field],) > result.append(t) > - if maxResults is None or len_data < maxResults: > - tree.delete(prefix) > - node = tree.search_best(ip.strNormal()) > - else: > + if maxResults is not None and len_data >= maxResults: > break > return result > +1 for me as well Pierre
Attachment:
pgpqMl45hDFT5.pgp
Description: PGP signature
_______________________________________________ infrastructure mailing list infrastructure@xxxxxxxxxxxxxxxxxxxxxxx http://lists.fedoraproject.org/admin/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx