/ src / node / caches.h
caches.h
 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  } // namespace node
31  
32  #endif // BITCOIN_NODE_CACHES_H