From 88a1691a1e76e09c0e2eca8751281a4f90373753 Mon Sep 17 00:00:00 2001 From: sdong Date: Tue, 10 Jun 2014 09:36:59 -0700 Subject: [PATCH] BlockBasedTable::PrefixMayMatch() to bloom setting to the beginning of the function Summary: In BlockBasedTable::PrefixMayMatch() we calculate prefix even if bloom is not config. Move the check before Test Plan: make all check Reviewers: igor, ljin Reviewed By: ljin Subscribers: wuj, leveldb, haobo, yhchiang, dhruba Differential Revision: https://reviews.facebook.net/D18993 --- table/block_based_table_reader.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/table/block_based_table_reader.cc b/table/block_based_table_reader.cc index 71fff659a4..e5cc58ccb3 100644 --- a/table/block_based_table_reader.cc +++ b/table/block_based_table_reader.cc @@ -914,6 +914,10 @@ class BlockBasedTable::BlockEntryIteratorState : public TwoLevelIteratorState { // // REQUIRES: this method shouldn't be called while the DB lock is held. bool BlockBasedTable::PrefixMayMatch(const Slice& internal_key) { + if (!rep_->options.filter_policy) { + return true; + } + assert(rep_->options.prefix_extractor != nullptr); auto prefix = rep_->options.prefix_extractor->Transform( ExtractUserKey(internal_key)); @@ -923,10 +927,6 @@ bool BlockBasedTable::PrefixMayMatch(const Slice& internal_key) { bool may_match = true; Status s; - if (!rep_->options.filter_policy) { - return true; - } - // To prevent any io operation in this method, we set `read_tier` to make // sure we always read index or filter only when they have already been // loaded to memory.