From: Yan, Zheng Date: Wed, 2 Apr 2014 01:33:37 +0000 (+0800) Subject: mds: initialize bloom filter according to dirfrag size X-Git-Tag: v0.79~26^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5a9b99aa9188bff74b59adb3d55cbb7f27343765;p=ceph.git mds: initialize bloom filter according to dirfrag size Signed-off-by: Yan, Zheng --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 6e93ec5ecea7..10189773caf2 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -616,7 +616,9 @@ void CDir::add_to_bloom(CDentry *dn) /* not create bloom filter for incomplete dir that was added by log replay */ if (!is_complete()) return; - bloom = new bloom_filter(100, 0.05, 0); + unsigned size = get_num_head_items() + get_num_snap_items(); + if (size < 100) size = 100; + bloom = new bloom_filter(size, 1.0 / size, 0); } /* This size and false positive probability is completely random.*/ bloom->insert(dn->name.c_str(), dn->name.size());