Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
node
caches.h
Go to the documentation of this file.
1
// Copyright (c) 2021-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_NODE_CACHES_H
6
#define BITCOIN_NODE_CACHES_H
7
8
#include <
kernel/caches.h
>
9
#include <
util/byte_units.h
>
10
11
#include <algorithm>
12
#include <cstddef>
13
#include <cstdint>
14
15
class
ArgsManager
;
16
18
inline
constexpr
uint64_t
DBCACHE_WARNING_RESERVED_RAM
{2_GiB};
19
20
namespace
node
{
21
uint64_t
GetDefaultDBCache
();
22
struct
IndexCacheSizes
{
23
uint64_t
tx_index
{0};
24
uint64_t
filter_index
{0};
25
uint64_t
txospender_index
{0};
26
};
27
struct
CacheSizes
{
28
IndexCacheSizes
index
;
29
kernel::CacheSizes
kernel
;
30
};
31
CacheSizes
CalculateCacheSizes
(
const
ArgsManager
&
args
,
size_t
n_indexes = 0);
32
constexpr
bool
ShouldWarnOversizedDbCache
(uint64_t dbcache, uint64_t total_ram)
noexcept
33
{
34
const
uint64_t available_ram{total_ram >
DBCACHE_WARNING_RESERVED_RAM
? total_ram -
DBCACHE_WARNING_RESERVED_RAM
: 0};
35
const
uint64_t cap{std::max(
DEFAULT_KERNEL_CACHE
, (available_ram / 4) * 3)};
36
return
dbcache > cap;
37
}
38
39
void
LogOversizedDbCache
(
const
ArgsManager
&
args
)
noexcept
;
40
}
// namespace node
41
42
#endif
// BITCOIN_NODE_CACHES_H
args
ArgsManager & args
Definition
bitcoind.cpp:280
byte_units.h
ArgsManager
Definition
args.h:107
caches.h
DEFAULT_KERNEL_CACHE
constexpr uint64_t DEFAULT_KERNEL_CACHE
Suggested default amount of cache reserved for the kernel (bytes).
Definition
caches.h:19
kernel
Definition
coinstatsindex.h:21
node
Definition
messages.h:21
node::CalculateCacheSizes
CacheSizes CalculateCacheSizes(const ArgsManager &args, size_t n_indexes)
Definition
caches.cpp:57
node::LogOversizedDbCache
void LogOversizedDbCache(const ArgsManager &args) noexcept
Definition
caches.cpp:85
node::ShouldWarnOversizedDbCache
constexpr bool ShouldWarnOversizedDbCache(uint64_t dbcache, uint64_t total_ram) noexcept
Definition
caches.h:32
node::GetDefaultDBCache
uint64_t GetDefaultDBCache()
Definition
caches.cpp:37
DBCACHE_WARNING_RESERVED_RAM
constexpr uint64_t DBCACHE_WARNING_RESERVED_RAM
Reserved non-dbcache memory usage.
Definition
caches.h:18
kernel::CacheSizes
Definition
caches.h:29
node::CacheSizes
Definition
caches.h:27
node::CacheSizes::index
IndexCacheSizes index
Definition
caches.h:28
node::IndexCacheSizes
Definition
caches.h:22
node::IndexCacheSizes::txospender_index
uint64_t txospender_index
Definition
caches.h:25
node::IndexCacheSizes::filter_index
uint64_t filter_index
Definition
caches.h:24
node::IndexCacheSizes::tx_index
uint64_t tx_index
Definition
caches.h:23
Generated on
for Bitcoin Core by
1.18.0