|
|
|
// Copyright (c) 2011-present, 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
|
|
|
|
|
|
|
|
#ifndef ROCKSDB_LITE
|
|
|
|
|
|
|
|
#include "utilities/blob_db/blob_db.h"
|
|
|
|
|
|
|
|
namespace rocksdb {
|
|
|
|
|
|
|
|
namespace blob_db {
|
|
|
|
|
|
|
|
struct BlobDBOptionsImpl : public BlobDBOptions {
|
|
|
|
// deletions check period
|
|
|
|
uint32_t deletion_check_period_millisecs;
|
|
|
|
|
|
|
|
// gc percentage each check period
|
|
|
|
uint32_t gc_file_pct;
|
|
|
|
|
|
|
|
// gc period
|
|
|
|
uint32_t gc_check_period_millisecs;
|
|
|
|
|
|
|
|
// sanity check task
|
|
|
|
uint32_t sanity_check_period_millisecs;
|
|
|
|
|
|
|
|
// how many random access open files can we tolerate
|
|
|
|
uint32_t open_files_trigger;
|
|
|
|
|
|
|
|
// how many periods of stats do we keep.
|
|
|
|
uint32_t wa_num_stats_periods;
|
|
|
|
|
|
|
|
// what is the length of any period
|
|
|
|
uint32_t wa_stats_period_millisecs;
|
|
|
|
|
|
|
|
// we will garbage collect blob files in
|
|
|
|
// which entire files have expired. However if the
|
|
|
|
// ttl_range of files is very large say a day, we
|
|
|
|
// would have to wait for the entire day, before we
|
|
|
|
// recover most of the space.
|
|
|
|
uint32_t partial_expiration_gc_range_secs;
|
|
|
|
|
|
|
|
// this should be based on allowed Write Amplification
|
|
|
|
// if 50% of the space of a blob file has been deleted/expired,
|
|
|
|
uint32_t partial_expiration_pct;
|
|
|
|
|
|
|
|
// how often should we schedule a job to fsync open files
|
|
|
|
uint32_t fsync_files_period_millisecs;
|
|
|
|
|
|
|
|
// how often to schedule reclaim open files.
|
|
|
|
uint32_t reclaim_of_period_millisecs;
|
|
|
|
|
|
|
|
// how often to schedule delete obs files periods
|
|
|
|
uint32_t delete_obsf_period_millisecs;
|
|
|
|
|
|
|
|
// how often to schedule check seq files period
|
|
|
|
uint32_t check_seqf_period_millisecs;
|
|
|
|
|
|
|
|
// Disable all background job.
|
|
|
|
bool disable_background_tasks;
|
|
|
|
|
|
|
|
// default constructor
|
|
|
|
BlobDBOptionsImpl();
|
|
|
|
|
|
|
|
explicit BlobDBOptionsImpl(const BlobDBOptions& in);
|
|
|
|
|
|
|
|
BlobDBOptionsImpl& operator=(const BlobDBOptionsImpl& in);
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace blob_db
|
|
|
|
|
|
|
|
} // namespace rocksdb
|
|
|
|
|
|
|
|
#endif // endif ROCKSDB
|