aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/bloom.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2007-04-27 17:52:24 +0000
committerrsc <devnull@localhost>2007-04-27 17:52:24 +0000
commit7e4524011b432ca5225d9768ba7f11a377776fbf (patch)
treeb826944c035ce806eb18297e87153291ed1e36b1 /src/cmd/venti/srv/bloom.c
parent9ec61f3ede67c5df2726c9e67736fec8af6d8b80 (diff)
downloadplan9port-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.c13
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;