// 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). #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