Skip to content

Commit

Permalink
Add ram_size to resource_limits_state_object. #691
Browse files Browse the repository at this point in the history
  • Loading branch information
afalaleev committed May 19, 2019
1 parent dba8557 commit a73b6ba
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 5 deletions.
6 changes: 3 additions & 3 deletions libraries/chain/chaindb/cache_map.cpp
Expand Up @@ -678,7 +678,7 @@ namespace cyberway { namespace chaindb {
using state_object = eosio::chain::resource_limits::resource_limits_state_object;
if (obj.has_data() && obj.service().table == chaindb::tag<state_object>::get_code()) {
auto& state = multi_index_item_data<state_object>::get_T(obj);
ram_limit_ = get_ram_limit(state.virtual_limits[eosio::chain::resource_limits::RAM], state.reserved_ram_size);
ram_limit_ = get_ram_limit(state.ram_size, state.reserved_ram_size);
}

// don't rebuild indicies for interchain objects
Expand Down Expand Up @@ -714,10 +714,10 @@ namespace cyberway { namespace chaindb {
uint64_t ram_used_ = 0;

static uint64_t get_ram_limit(
const uint64_t limit = eosio::chain::config::default_virtual_ram_limit,
const uint64_t limit = eosio::chain::config::default_ram_size,
const uint64_t reserve = eosio::chain::config::default_reserved_ram_size
) {
// reserve for system objects (transactions, blocks, abi cache, ...)
// reserve for system objects (transactions, blocks, ...)
// and for pending caches (pending_cell_list_, ...)
return limit - reserve;
}
Expand Down
1 change: 1 addition & 0 deletions libraries/chain/eosio_contract_abi.cpp
Expand Up @@ -464,6 +464,7 @@ abi_def eosio_contract_abi(abi_def eos_abi)
{"block_usage_accumulators", "usage_accumulator[]"},
{"pending_usage", "int64[]"},
{"virtual_limits", "uint64[]"},
{"ram_size", "uint64"},
{"reserved_ram_size", "uint64"}}
});

Expand Down
2 changes: 1 addition & 1 deletion libraries/chain/include/eosio/chain/config.hpp
Expand Up @@ -35,7 +35,7 @@ const static auto default_state_dir_name = "state";
const static auto forkdb_filename = "forkdb.dat";
const static auto default_state_size = _GB;
const static auto default_state_guard_size = 128*_MB;
const static uint64_t default_virtual_ram_limit = 8*_GB;
const static uint64_t default_ram_size = 8*_GB;
const static uint64_t default_reserved_ram_size = 512*_MB;
const static uint64_t min_resource_usage_pct = percent_1 / 10;

Expand Down
Expand Up @@ -136,6 +136,7 @@ using namespace int_arithmetic;
std::vector<usage_accumulator> block_usage_accumulators;
std::vector<int64_t> pending_usage;
std::vector<uint64_t> virtual_limits;
uint64_t ram_size = config::default_ram_size;
uint64_t reserved_ram_size = config::default_reserved_ram_size;
void update_virtual_limit(const resource_limits_config_object& cfg, resource_id res);
void add_pending_delta(int64_t delta, const resource_limits_config_object& config, resource_id res);
Expand Down Expand Up @@ -164,4 +165,4 @@ FC_REFLECT(eosio::chain::resource_limits::resource_usage_object, (id)(owner)(acc

FC_REFLECT(eosio::chain::resource_limits::resource_limits_config_object, (id)(limit_parameters)(account_usage_average_windows))

FC_REFLECT(eosio::chain::resource_limits::resource_limits_state_object, (id)(block_usage_accumulators)(pending_usage)(virtual_limits)(reserved_ram_size))
FC_REFLECT(eosio::chain::resource_limits::resource_limits_state_object, (id)(block_usage_accumulators)(pending_usage)(virtual_limits)(ram_size)(reserved_ram_size))

0 comments on commit a73b6ba

Please sign in to comment.