From 7e4524011b432ca5225d9768ba7f11a377776fbf Mon Sep 17 00:00:00 2001 From: rsc Date: Fri, 27 Apr 2007 17:52:24 +0000 Subject: checkpoint --- src/cmd/venti/srv/bloom.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/cmd/venti/srv/bloom.c') diff --git a/src/cmd/venti/srv/bloom.c b/src/cmd/venti/srv/bloom.c index 04fd6510..bd398815 100644 --- a/src/cmd/venti/srv/bloom.c +++ b/src/cmd/venti/srv/bloom.c @@ -26,7 +26,6 @@ bloominit(Bloom *b, vlong vsize, u8int *data) if(unpackbloomhead(b, data) < 0) return -1; -fprint(2, "bloom size %lud nhash %d\n", b->size, b->nhash); b->bitmask = (b->size<<3) - 1; b->data = data; return 0; @@ -54,7 +53,19 @@ readbloom(Part *p) */ if(bloominit(b, 0, buf) < 0){ vtfree(b); + freepart(p); return nil; + }else{ + /* + * default block size is system page size. + * the bloom filter is usually very big. + * bump the block size up to speed i/o. + */ + if(p->blocksize < (1<<20)){ + p->blocksize = 1<<20; + if(p->blocksize > p->size) + p->blocksize = p->size; + } } b->part = p; b->data = nil; -- cgit v1.2.3