From d6c6f6c7fb4119643e5739c19dffa5e9f12f6d27 Mon Sep 17 00:00:00 2001 From: Giorgos Verigakis Date: Thu, 28 Jul 2011 18:16:22 +0300 Subject: [PATCH] Store blocks hierarchically Use a 3 dir deep hierarchy for storing blocks instead of the current flat one. --- pithos/lib/hashfiler/blocker.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pithos/lib/hashfiler/blocker.py b/pithos/lib/hashfiler/blocker.py index 6010009..3654306 100644 --- a/pithos/lib/hashfiler/blocker.py +++ b/pithos/lib/hashfiler/blocker.py @@ -75,11 +75,17 @@ class Blocker(object): self.emptyhash = emptyhash def get_rear_block(self, blkhash, create=0): - name = join(self.blockpath, hexlify(blkhash)) + filename = hexlify(blkhash) + dir = join(self.blockpath, filename[0:2], filename[2:4], filename[4:6]) + if not exists(dir): + makedirs(dir) + name = join(dir, filename) return ContextFile(name, create) def check_rear_block(self, blkhash): - name = join(self.blockpath, hexlify(blkhash)) + filename = hexlify(blkhash) + dir = join(self.blockpath, filename[0:2], filename[2:4], filename[4:6]) + name = join(dir, filename) return exists(name) def block_hash(self, data): -- 1.7.10.4