876c2dbff4
Summary: Right, when reading from option files, no readahead is used and 8KB buffer is used. It might introduce high latency if the file system provide high latency and doesn't do readahead. Instead, introduce a readahead to the file. When calling inside DB, infer the value from options.log_readahead. Otherwise, a default 512KB readahead size is used. Pull Request resolved: https://github.com/facebook/rocksdb/pull/6372 Test Plan: Add --log_readahead_size in db_bench. Run it with several options and observe read size from option files using strace. Differential Revision: D19727739 fbshipit-source-id: e6d8053b0a64259abc087f1f388b9cd66fa8a583
35 lines
1.3 KiB
C++
35 lines
1.3 KiB
C++
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under both the GPLv2 (found in the
|
|
// COPYING file in the root directory) and Apache 2.0 License
|
|
// (found in the LICENSE.Apache file in the root directory).
|
|
//
|
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
|
|
#pragma once
|
|
#include <atomic>
|
|
#include "file/sequence_file_reader.h"
|
|
#include "rocksdb/env.h"
|
|
#include "rocksdb/file_system.h"
|
|
|
|
namespace rocksdb {
|
|
// Returns a WritableFile.
|
|
//
|
|
// env : the Env.
|
|
// fname : the file name.
|
|
// result : output arg. A WritableFile based on `fname` returned.
|
|
// options : the Env Options.
|
|
extern IOStatus NewWritableFile(FileSystem* fs, const std::string& fname,
|
|
std::unique_ptr<FSWritableFile>* result,
|
|
const FileOptions& options);
|
|
|
|
// Read a single line from a file.
|
|
bool ReadOneLine(std::istringstream* iss, SequentialFileReader* seq_file_reader,
|
|
std::string* output, bool* has_data, Status* result);
|
|
|
|
#ifndef NDEBUG
|
|
bool IsFileSectorAligned(const size_t off, size_t sector_size);
|
|
#endif // NDEBUG
|
|
} // namespace rocksdb
|