Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
kernel
caches.h
Go to the documentation of this file.
1
// Copyright (c) 2024-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_KERNEL_CACHES_H
6
#define BITCOIN_KERNEL_CACHES_H
7
8
#include <
util/byte_units.h
>
9
10
#include <algorithm>
11
#include <cstdint>
12
#include <limits>
13
15
inline
constexpr
uint64_t
MIN_DBCACHE_BYTES
{4_MiB};
17
inline
constexpr
uint64_t
MAX_DBCACHE_BYTES
{
sizeof
(
void
*) == 4 ? 1_GiB : std::numeric_limits<uint64_t>::max()};
19
inline
constexpr
uint64_t
DEFAULT_KERNEL_CACHE
{450_MiB};
21
inline
constexpr
uint64_t
DEFAULT_DB_CACHE_BATCH
{32_MiB};
22
24
inline
constexpr
uint64_t
MAX_BLOCK_DB_CACHE
{2_MiB};
26
inline
constexpr
uint64_t
MAX_COINS_DB_CACHE
{8_MiB};
27
28
namespace
kernel
{
29
struct
CacheSizes
{
30
uint64_t
block_tree_db
;
31
uint64_t
coins_db
;
32
uint64_t
coins
;
33
34
CacheSizes
(uint64_t total_cache)
35
{
36
block_tree_db
= std::min(total_cache / 8,
MAX_BLOCK_DB_CACHE
);
37
total_cache -=
block_tree_db
;
38
coins_db
= std::min(total_cache / 2,
MAX_COINS_DB_CACHE
);
39
total_cache -=
coins_db
;
40
coins
= total_cache;
// the rest goes to the coins cache
41
}
42
};
43
}
// namespace kernel
44
45
#endif
// BITCOIN_KERNEL_CACHES_H
byte_units.h
MAX_BLOCK_DB_CACHE
constexpr uint64_t MAX_BLOCK_DB_CACHE
Max memory allocated to block tree DB specific cache (bytes).
Definition
caches.h:24
MAX_DBCACHE_BYTES
constexpr uint64_t MAX_DBCACHE_BYTES
Maximum total database cache on current architecture (bytes).
Definition
caches.h:17
DEFAULT_DB_CACHE_BATCH
constexpr uint64_t DEFAULT_DB_CACHE_BATCH
Default LevelDB write batch size.
Definition
caches.h:21
DEFAULT_KERNEL_CACHE
constexpr uint64_t DEFAULT_KERNEL_CACHE
Suggested default amount of cache reserved for the kernel (bytes).
Definition
caches.h:19
MAX_COINS_DB_CACHE
constexpr uint64_t MAX_COINS_DB_CACHE
Max memory allocated to coin DB specific cache (bytes).
Definition
caches.h:26
MIN_DBCACHE_BYTES
constexpr uint64_t MIN_DBCACHE_BYTES
Minimum total database cache (bytes).
Definition
caches.h:15
kernel
Definition
coinstatsindex.h:21
CacheSizes::CacheSizes
CacheSizes(uint64_t total_cache)
Definition
caches.h:34
kernel::CacheSizes::CacheSizes
CacheSizes(uint64_t total_cache)
Definition
caches.h:34
kernel::CacheSizes::block_tree_db
uint64_t block_tree_db
Definition
caches.h:30
kernel::CacheSizes::coins
uint64_t coins
Definition
caches.h:32
kernel::CacheSizes::coins_db
uint64_t coins_db
Definition
caches.h:31
Generated on
for Bitcoin Core by
1.18.0