| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Copyright (c) Meta Platforms, Inc. and affiliates.
- //
- // 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.
- #include "db/compaction/compaction_state.h"
- namespace ROCKSDB_NAMESPACE {
- Slice CompactionState::SmallestUserKey() {
- for (const auto& sub_compact_state : sub_compact_states) {
- Slice smallest = sub_compact_state.SmallestUserKey();
- if (!smallest.empty()) {
- return smallest;
- }
- }
- // If there is no finished output, return an empty slice.
- return Slice{nullptr, 0};
- }
- Slice CompactionState::LargestUserKey() {
- for (auto it = sub_compact_states.rbegin(); it < sub_compact_states.rend();
- ++it) {
- Slice largest = it->LargestUserKey();
- if (!largest.empty()) {
- return largest;
- }
- }
- // If there is no finished output, return an empty slice.
- return Slice{nullptr, 0};
- }
- void CompactionState::AggregateCompactionStats(
- InternalStats::CompactionStatsFull& internal_stats,
- CompactionJobStats& job_stats) {
- for (const auto& sc : sub_compact_states) {
- sc.AggregateCompactionOutputStats(internal_stats);
- job_stats.Add(sc.compaction_job_stats);
- }
- }
- } // namespace ROCKSDB_NAMESPACE
|