YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/Users/deen/code/yugabyte-db/src/yb/rocksdb/db/file_numbers.cc
Line
Count
Source (jump to first uncovered line)
1
// Copyright (c) YugaByte, Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
4
// in compliance with the License.  You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software distributed under the License
9
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
10
// or implied.  See the License for the specific language governing permissions and limitations
11
// under the License.
12
//
13
14
#include "yb/rocksdb/db/file_numbers.h"
15
16
#include "yb/rocksdb/db/version_set.h"
17
18
namespace rocksdb {
19
20
0
std::string FileNumbersHolder::ToString() const {
21
0
  return yb::ToString(file_numbers_);
22
0
}
23
24
42.0k
FileNumbersHolder FileNumbersProvider::NewFileNumber() {
25
  // No need to lock because VersionSet::next_file_number_ is atomic.
26
42.0k
  auto file_number = versions_->NewFileNumber();
27
42.0k
  AddFileNumber(file_number);
28
42.0k
  auto holder = FileNumbersHolder(this);
29
42.0k
  holder.Add(file_number);
30
42.0k
  return holder;
31
42.0k
}
32
33
11.4k
FileNumbersHolder FileNumbersProvider::CreateHolder() {
34
11.4k
  return FileNumbersHolder(this);
35
11.4k
}
36
37
22.9k
FileNumber FileNumbersProvider::NewFileNumber(FileNumbersHolder* holder) {
38
  // No need to lock because VersionSet::next_file_number_ is atomic.
39
22.9k
  auto file_number = versions_->NewFileNumber();
40
22.9k
  std::lock_guard<SpinMutex> l(mutex_);
41
22.9k
  fset_.insert(file_number);
42
22.9k
  holder->Add(file_number);
43
22.9k
  return file_number;
44
22.9k
}
45
46
5.83M
bool FileNumbersProvider::HasFileNumber(FileNumber file_number) const {
47
5.83M
  std::lock_guard<SpinMutex> l(mutex_);
48
5.83M
  return fset_.count(file_number) > 0;
49
5.83M
}
50
51
0
std::string FileNumbersProvider::ToString() const {
52
0
  std::lock_guard<SpinMutex> l(mutex_);
53
0
  return yb::ToString(fset_);
54
0
}
55
56
71.1k
void FileNumbersProvider::AddFileNumber(FileNumber file_number) {
57
71.1k
  std::lock_guard<SpinMutex> l(mutex_);
58
71.1k
  fset_.insert(file_number);
59
71.1k
}
60
61
94.0k
void FileNumbersProvider::RemoveFileNumber(FileNumber file_number) {
62
94.0k
  std::lock_guard<SpinMutex> l(mutex_);
63
94.0k
  auto iter = fset_.find(file_number);
64
94.0k
  if (iter != fset_.end()) {
65
94.0k
    fset_.erase(iter);
66
94.0k
  }
67
94.0k
}
68
69
}  // namespace rocksdb