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