]> git.proxmox.com Git - ceph.git/blame - ceph/src/rocksdb/include/rocksdb/compaction_job_stats.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / rocksdb / include / rocksdb / compaction_job_stats.h
CommitLineData
7c673cae 1// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
11fdf7f2
TL
2// This source code is licensed under both the GPLv2 (found in the
3// COPYING file in the root directory) and Apache 2.0 License
4// (found in the LICENSE.Apache file in the root directory).
7c673cae
FG
5
6#pragma once
7#include <stddef.h>
8#include <stdint.h>
9#include <string>
10
f67539c2
TL
11#include "rocksdb/rocksdb_namespace.h"
12
13namespace ROCKSDB_NAMESPACE {
7c673cae
FG
14struct CompactionJobStats {
15 CompactionJobStats() { Reset(); }
16 void Reset();
17 // Aggregate the CompactionJobStats from another instance with this one
18 void Add(const CompactionJobStats& stats);
19
11fdf7f2 20 // the elapsed time of this compaction in microseconds.
7c673cae
FG
21 uint64_t elapsed_micros;
22
494da23a
TL
23 // the elapsed CPU time of this compaction in microseconds.
24 uint64_t cpu_micros;
25
7c673cae
FG
26 // the number of compaction input records.
27 uint64_t num_input_records;
28 // the number of compaction input files.
29 size_t num_input_files;
30 // the number of compaction input files at the output level.
31 size_t num_input_files_at_output_level;
32
33 // the number of compaction output records.
34 uint64_t num_output_records;
35 // the number of compaction output files.
36 size_t num_output_files;
37
38 // true if the compaction is a manual compaction
39 bool is_manual_compaction;
40
41 // the size of the compaction input in bytes.
42 uint64_t total_input_bytes;
43 // the size of the compaction output in bytes.
44 uint64_t total_output_bytes;
45
46 // number of records being replaced by newer record associated with same key.
47 // this could be a new value or a deletion entry for that key so this field
48 // sums up all updated and deleted keys
49 uint64_t num_records_replaced;
50
51 // the sum of the uncompressed input keys in bytes.
52 uint64_t total_input_raw_key_bytes;
53 // the sum of the uncompressed input values in bytes.
54 uint64_t total_input_raw_value_bytes;
55
56 // the number of deletion entries before compaction. Deletion entries
57 // can disappear after compaction because they expired
58 uint64_t num_input_deletion_records;
59 // number of deletion records that were found obsolete and discarded
60 // because it is not possible to delete any more keys with this entry
61 // (i.e. all possible deletions resulting from it have been completed)
62 uint64_t num_expired_deletion_records;
63
64 // number of corrupt keys (ParseInternalKey returned false when applied to
65 // the key) encountered and written out.
66 uint64_t num_corrupt_keys;
67
68 // Following counters are only populated if
69 // options.report_bg_io_stats = true;
70
71 // Time spent on file's Append() call.
72 uint64_t file_write_nanos;
73
74 // Time spent on sync file range.
75 uint64_t file_range_sync_nanos;
76
77 // Time spent on file fsync.
78 uint64_t file_fsync_nanos;
79
11fdf7f2 80 // Time spent on preparing file write (fallocate, etc)
7c673cae
FG
81 uint64_t file_prepare_write_nanos;
82
83 // 0-terminated strings storing the first 8 bytes of the smallest and
84 // largest key in the output.
85 static const size_t kMaxPrefixLength = 8;
86
87 std::string smallest_output_key_prefix;
88 std::string largest_output_key_prefix;
89
90 // number of single-deletes which do not meet a put
91 uint64_t num_single_del_fallthru;
92
93 // number of single-deletes which meet something other than a put
94 uint64_t num_single_del_mismatch;
95};
f67539c2 96} // namespace ROCKSDB_NAMESPACE