diff options
author | rsc <devnull@localhost> | 2007-04-27 17:52:24 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2007-04-27 17:52:24 +0000 |
commit | 7e4524011b432ca5225d9768ba7f11a377776fbf (patch) | |
tree | b826944c035ce806eb18297e87153291ed1e36b1 /src/cmd/venti/srv/bloom.c | |
parent | 9ec61f3ede67c5df2726c9e67736fec8af6d8b80 (diff) | |
download | plan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.tar.gz plan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.tar.bz2 plan9port-7e4524011b432ca5225d9768ba7f11a377776fbf.zip |
checkpoint
Diffstat (limited to 'src/cmd/venti/srv/bloom.c')
-rw-r--r-- | src/cmd/venti/srv/bloom.c | 13 |
1 files changed, 12 insertions, 1 deletions
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; |