/root/bitcoin/src/node/caches.h
| Line | Count | Source | 
| 1 |  | // Copyright (c) 2021 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 <cstddef> | 
| 12 |  |  | 
| 13 |  | class ArgsManager; | 
| 14 |  |  | 
| 15 |  | //! min. -dbcache (bytes) | 
| 16 |  | static constexpr size_t MIN_DB_CACHE{4_MiB}; | 
| 17 |  | //! -dbcache default (bytes) | 
| 18 |  | static constexpr size_t DEFAULT_DB_CACHE{DEFAULT_KERNEL_CACHE}; | 
| 19 |  |  | 
| 20 |  | namespace node { | 
| 21 |  | struct IndexCacheSizes { | 
| 22 |  |     size_t tx_index{0}; | 
| 23 |  |     size_t filter_index{0}; | 
| 24 |  | }; | 
| 25 |  | struct CacheSizes { | 
| 26 |  |     IndexCacheSizes index; | 
| 27 |  |     kernel::CacheSizes kernel; | 
| 28 |  | }; | 
| 29 |  | CacheSizes CalculateCacheSizes(const ArgsManager& args, size_t n_indexes = 0); | 
| 30 |  | constexpr bool ShouldWarnOversizedDbCache(size_t dbcache, size_t total_ram) noexcept | 
| 31 | 0 | { | 
| 32 | 0 |     const size_t cap{(total_ram < 2048_MiB) ? DEFAULT_DB_CACHE : (total_ram / 100) * 75}; | 
| 33 | 0 |     return dbcache > cap; | 
| 34 | 0 | } | 
| 35 |  |  | 
| 36 |  | void LogOversizedDbCache(const ArgsManager& args) noexcept; | 
| 37 |  | } // namespace node | 
| 38 |  |  | 
| 39 |  | #endif // BITCOIN_NODE_CACHES_H |