caches.h raw

   1  // Copyright (c) 2021 The Limenka 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 LIMENKA_NODE_CACHES_H
   6  #define LIMENKA_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  namespace node {
  16  struct IndexCacheSizes {
  17      size_t tx_index{0};
  18      size_t filter_index{0};
  19  };
  20  struct CacheSizes {
  21      IndexCacheSizes index;
  22      kernel::CacheSizes kernel;
  23  };
  24  CacheSizes CalculateCacheSizes(const ArgsManager& args, size_t n_indexes = 0);
  25  
  26  void LogOversizedDbCache(const ArgsManager& args) noexcept;
  27  void LogAutoDbCacheSettings() noexcept;
  28  } // namespace node
  29  
  30  #endif // LIMENKA_NODE_CACHES_H
  31