Fork cache config implementation
This commit is contained in:
parent
53b3e21529
commit
d682454665
4 changed files with 37 additions and 0 deletions
|
|
@ -439,6 +439,7 @@ nano::stat::detail nano::to_stat_detail (nano::asc_pull_type type)
|
||||||
|
|
||||||
nano::error nano::bootstrap_server_config::serialize (nano::tomlconfig & toml) const
|
nano::error nano::bootstrap_server_config::serialize (nano::tomlconfig & toml) const
|
||||||
{
|
{
|
||||||
|
toml.put ("enable", enable, "Enable bootstrap server. \ntype:bool");
|
||||||
toml.put ("max_queue", max_queue, "Maximum number of queued requests per peer. \ntype:uint64");
|
toml.put ("max_queue", max_queue, "Maximum number of queued requests per peer. \ntype:uint64");
|
||||||
toml.put ("threads", threads, "Number of threads to process requests. \ntype:uint64");
|
toml.put ("threads", threads, "Number of threads to process requests. \ntype:uint64");
|
||||||
toml.put ("batch_size", batch_size, "Maximum number of requests to process in a single batch. \ntype:uint64");
|
toml.put ("batch_size", batch_size, "Maximum number of requests to process in a single batch. \ntype:uint64");
|
||||||
|
|
@ -449,6 +450,7 @@ nano::error nano::bootstrap_server_config::serialize (nano::tomlconfig & toml) c
|
||||||
|
|
||||||
nano::error nano::bootstrap_server_config::deserialize (nano::tomlconfig & toml)
|
nano::error nano::bootstrap_server_config::deserialize (nano::tomlconfig & toml)
|
||||||
{
|
{
|
||||||
|
toml.get ("enable", enable);
|
||||||
toml.get ("max_queue", max_queue);
|
toml.get ("max_queue", max_queue);
|
||||||
toml.get ("threads", threads);
|
toml.get ("threads", threads);
|
||||||
toml.get ("batch_size", batch_size);
|
toml.get ("batch_size", batch_size);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include <nano/lib/stats.hpp>
|
#include <nano/lib/stats.hpp>
|
||||||
|
#include <nano/lib/tomlconfig.hpp>
|
||||||
#include <nano/node/fork_cache.hpp>
|
#include <nano/node/fork_cache.hpp>
|
||||||
|
|
||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
|
|
@ -81,4 +82,24 @@ nano::container_info nano::fork_cache::container_info () const
|
||||||
nano::container_info result;
|
nano::container_info result;
|
||||||
result.put ("roots", roots);
|
result.put ("roots", roots);
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fork_cache_config
|
||||||
|
*/
|
||||||
|
|
||||||
|
nano::error nano::fork_cache_config::deserialize (nano::tomlconfig & toml)
|
||||||
|
{
|
||||||
|
toml.get ("max_size", max_size);
|
||||||
|
toml.get ("max_forks_per_root", max_forks_per_root);
|
||||||
|
|
||||||
|
return toml.get_error ();
|
||||||
|
}
|
||||||
|
|
||||||
|
nano::error nano::fork_cache_config::serialize (nano::tomlconfig & toml) const
|
||||||
|
{
|
||||||
|
toml.put ("max_size", max_size, "Maximum number of roots in the cache. Each root can have multiple forks. \ntype:uint64");
|
||||||
|
toml.put ("max_forks_per_root", max_forks_per_root, "Maximum number of forks per root. \ntype:uint64");
|
||||||
|
|
||||||
|
return toml.get_error ();
|
||||||
}
|
}
|
||||||
|
|
@ -20,6 +20,10 @@ namespace nano
|
||||||
{
|
{
|
||||||
class fork_cache_config final
|
class fork_cache_config final
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
nano::error deserialize (nano::tomlconfig &);
|
||||||
|
nano::error serialize (nano::tomlconfig &) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
size_t max_size{ 1024 * 16 };
|
size_t max_size{ 1024 * 16 };
|
||||||
size_t max_forks_per_root{ 10 };
|
size_t max_forks_per_root{ 10 };
|
||||||
|
|
|
||||||
|
|
@ -274,6 +274,10 @@ nano::error nano::node_config::serialize_toml (nano::tomlconfig & toml) const
|
||||||
bounded_backlog.serialize (bounded_backlog_l);
|
bounded_backlog.serialize (bounded_backlog_l);
|
||||||
toml.put_child ("bounded_backlog", bounded_backlog_l);
|
toml.put_child ("bounded_backlog", bounded_backlog_l);
|
||||||
|
|
||||||
|
nano::tomlconfig fork_cache_l;
|
||||||
|
fork_cache.serialize (fork_cache_l);
|
||||||
|
toml.put_child ("fork_cache", fork_cache_l);
|
||||||
|
|
||||||
return toml.get_error ();
|
return toml.get_error ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -431,6 +435,12 @@ nano::error nano::node_config::deserialize_toml (nano::tomlconfig & toml)
|
||||||
bounded_backlog.deserialize (config_l);
|
bounded_backlog.deserialize (config_l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (toml.has_key ("fork_cache"))
|
||||||
|
{
|
||||||
|
auto config_l = toml.get_required_child ("fork_cache");
|
||||||
|
fork_cache.deserialize (config_l);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Values
|
* Values
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue