66dc033af3
Summary: Mixing index/filter blocks with data blocks resulted in some known issues. To make sure in next release our users won't be affected, we added a new option in BlockBasedTableFactory::TableOption to conceal this functionality for now. This patch also introduced a BlockBasedTableReader::OpenOptions, which avoids the "infinite" growth of parameters in BlockBasedTableReader::Open(). Test Plan: make check Reviewers: haobo, sdong, igor, dhruba Reviewed By: igor CC: leveldb, tnovak Differential Revision: https://reviews.facebook.net/D15327
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
// Copyright (c) 2013, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
#pragma once
|
|
#include <memory>
|
|
|
|
namespace rocksdb {
|
|
|
|
class FlushBlockPolicyFactory;
|
|
|
|
struct BlockBasedTableOptions {
|
|
// @flush_block_policy_factory creates the instances of flush block policy.
|
|
// which provides a configurable way to determine when to flush a block in
|
|
// the block based tables. If not set, table builder will use the default
|
|
// block flush policy, which cut blocks by block size (please refer to
|
|
// `FlushBlockBySizePolicy`).
|
|
std::shared_ptr<FlushBlockPolicyFactory> flush_block_policy_factory;
|
|
|
|
// TODO(kailiu) Temporarily disable this feature by making the default value
|
|
// to be false. Also in master branch, this file is non-public so no user
|
|
// will be able to change the value of `cache_index_and_filter_blocks`.
|
|
//
|
|
// Indicating if we'd put index/filter blocks to the block cache.
|
|
// If not specified, each "table reader" object will pre-load index/filter
|
|
// block during table initialization.
|
|
bool cache_index_and_filter_blocks = false;
|
|
};
|
|
|
|
} // namespace rocksdb
|