Skip to content

Commit

Permalink
Remove ram owner from service part of object. #705
Browse files Browse the repository at this point in the history
  • Loading branch information
afalaleev committed May 23, 2019
1 parent f527454 commit 9196de5
Show file tree
Hide file tree
Showing 10 changed files with 9 additions and 48 deletions.
3 changes: 1 addition & 2 deletions libraries/chain/chaindb/cache_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1107,8 +1107,7 @@ namespace cyberway { namespace chaindb {
return {};
}
auto value = service_state(table, pk);
value.payer = storage.payer;
value.owner = storage.owner;
value.payer = storage.owner;
value.in_ram = true;
return impl_->emplace({std::move(value), {}});
}
Expand Down
12 changes: 4 additions & 8 deletions libraries/chain/chaindb/controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,15 +104,14 @@ namespace cyberway { namespace chaindb {
}

void storage_payer_info::get_payer_from(const object_value& obj) {
owner = obj.service.owner;
owner = obj.service.payer;
payer = obj.service.payer;
size = obj.service.size;
in_ram = obj.service.in_ram;
}

void storage_payer_info::set_payer_in(object_value& obj) const {
obj.service.owner = owner;
obj.service.payer = payer;
obj.service.payer = owner;
obj.service.size = size;
obj.service.in_ram = in_ram;
}
Expand Down Expand Up @@ -588,7 +587,7 @@ namespace cyberway { namespace chaindb {
validate_object(table, obj, obj.pk());

if (charge.owner.empty()) {
charge.owner = orig_obj.service.owner;
charge.owner = orig_obj.service.payer;
}

if (charge.payer.empty()) {
Expand All @@ -598,10 +597,7 @@ namespace cyberway { namespace chaindb {
charge.calc_usage(table, obj);
auto delta = charge.size - orig_obj.service.size;

if (charge.payer != orig_obj.service.payer ||
charge.owner != orig_obj.service.owner ||
charge.in_ram != orig_obj.service.in_ram
) {
if (charge.payer != orig_obj.service.payer || charge.in_ram != orig_obj.service.in_ram) {
auto refund = charge;
refund.get_payer_from(orig_obj);
refund.delta = -orig_obj.service.size;
Expand Down
22 changes: 2 additions & 20 deletions libraries/chain/chaindb/mongo_driver_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,11 +282,6 @@ namespace cyberway { namespace chaindb {
}
break;
}
case 'o': {
validate_field_name(names::owner_field == key, src, itm);
state.owner = from_decimal128(itm);
break;
}
case 'p': {
if (key == names::pk_field) {
state.pk = from_decimal128(itm);
Expand Down Expand Up @@ -320,11 +315,6 @@ namespace cyberway { namespace chaindb {
state.undo_payer = from_decimal128(itm);
break;
}
case 'o': {
validate_field_name(names::undo_owner_field == key, src, itm);
state.undo_owner = from_decimal128(itm);
break;
}
case 's': {
validate_field_name(names::undo_size_field == key, src, itm);
state.undo_size = itm.get_int32().value;
Expand Down Expand Up @@ -358,7 +348,7 @@ namespace cyberway { namespace chaindb {
validate_field_type(false, src, itm);
}

constexpr int undo_field_cnt = 15 /* list of them above */ - 2 /* ram_field */;
constexpr int undo_field_cnt = 13 /* list of them above */ - 2 /* ram_field */;
validate_exist_field(undo_field_cnt == field_cnt, src);
}

Expand Down Expand Up @@ -387,11 +377,6 @@ namespace cyberway { namespace chaindb {
}
break;
}
case 'o': {
validate_field_name(names::owner_field == key, src, itm);
state.owner = account_name(from_utf8(itm));
break;
}
case 'p': {
validate_field_name(names::payer_field == key, src, itm);
state.payer = account_name(from_utf8(itm));
Expand Down Expand Up @@ -421,7 +406,7 @@ namespace cyberway { namespace chaindb {
validate_field_type(false, src, itm);
}

constexpr int service_field_cnt = 6 /* list of them above */ - 1 /* ram_field */;
constexpr int service_field_cnt = 5 /* list of them above */ - 1 /* ram_field */;
validate_exist_field(service_field_cnt == field_cnt, src);
}

Expand Down Expand Up @@ -721,7 +706,6 @@ namespace cyberway { namespace chaindb {
append_typed_value(serv_doc, names::scope_field, scope_name::from_table(table));
serv_doc.append(kvp(names::revision_field, obj.service.revision));
serv_doc.append(kvp(names::payer_field, get_payer_name(obj.service.payer)));
serv_doc.append(kvp(names::owner_field, get_owner_name(obj.service.owner)));
serv_doc.append(kvp(names::size_field, static_cast<int32_t>(obj.service.size)));
append_ram_field(serv_doc, names::ram_field, obj.service.in_ram);
}));
Expand All @@ -734,15 +718,13 @@ namespace cyberway { namespace chaindb {
serv_doc.append(kvp(names::undo_pk_field, to_decimal128(obj.service.undo_pk)));
serv_doc.append(kvp(names::undo_rec_field, static_cast<int32_t>(obj.service.undo_rec)));
serv_doc.append(kvp(names::undo_payer_field, to_decimal128(obj.service.undo_payer)));
serv_doc.append(kvp(names::undo_owner_field, to_decimal128(obj.service.undo_owner)));
serv_doc.append(kvp(names::undo_size_field, static_cast<int32_t>(obj.service.undo_size)));
serv_doc.append(kvp(names::code_field, to_decimal128(obj.service.code)));
serv_doc.append(kvp(names::table_field, to_decimal128(obj.service.table)));
serv_doc.append(kvp(names::scope_field, to_decimal128(obj.service.scope)));
serv_doc.append(kvp(names::pk_field, to_decimal128(obj.service.pk)));
serv_doc.append(kvp(names::revision_field, obj.service.revision));
serv_doc.append(kvp(names::payer_field, to_decimal128(obj.service.payer)));
serv_doc.append(kvp(names::owner_field, to_decimal128(obj.service.owner)));
serv_doc.append(kvp(names::size_field, static_cast<int32_t>(obj.service.size)));
append_ram_field(serv_doc, names::ram_field, obj.service.in_ram);
append_ram_field(serv_doc, names::undo_ram_field, obj.service.undo_in_ram);
Expand Down
2 changes: 0 additions & 2 deletions libraries/chain/chaindb/names.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,12 @@ namespace cyberway { namespace chaindb {
const string names::next_pk_field = "npk";
const string names::undo_pk_field = "upk";
const string names::undo_payer_field = "uyr";
const string names::undo_owner_field = "uow";
const string names::undo_size_field = "usz";
const string names::undo_ram_field = "urm";
const string names::undo_rec_field = "uct";
const string names::revision_field = "rev";

const string names::payer_field = "payer";
const string names::owner_field = "owner";
const string names::size_field = "size";
const string names::ram_field = "ram";

Expand Down
3 changes: 0 additions & 3 deletions libraries/chain/chaindb/undo_state.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,6 @@ namespace cyberway { namespace chaindb {
void restore_undo_state(object_value& obj) {
obj.service.revision = obj.service.undo_revision;
obj.service.payer = obj.service.undo_payer;
obj.service.owner = obj.service.undo_owner;
obj.service.size = obj.service.undo_size;
obj.service.in_ram = obj.service.undo_in_ram;
}
Expand Down Expand Up @@ -856,7 +855,6 @@ namespace cyberway { namespace chaindb {

void copy_undo_object(object_value& dst, const object_value& src) {
dst.service.payer = src.service.payer;
dst.service.owner = src.service.owner;
dst.service.size = src.service.size;
dst.service.in_ram = src.service.in_ram;
}
Expand All @@ -869,7 +867,6 @@ namespace cyberway { namespace chaindb {
void init_undo_object(object_value& dst, undo_record rec) {
dst.service.undo_revision = dst.service.revision;
dst.service.undo_payer = dst.service.payer;
dst.service.undo_owner = dst.service.owner;
dst.service.undo_size = dst.service.size;
dst.service.undo_in_ram = dst.service.in_ram;

Expand Down
6 changes: 0 additions & 6 deletions libraries/chain/include/cyberway/chaindb/names.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,11 @@ namespace cyberway { namespace chaindb {
static const string undo_pk_field;
static const string undo_rec_field;
static const string undo_payer_field;
static const string undo_owner_field;
static const string undo_size_field;
static const string undo_ram_field;
static const string revision_field;

static const string payer_field;
static const string owner_field;
static const string size_field;
static const string ram_field;

Expand Down Expand Up @@ -84,10 +82,6 @@ namespace cyberway { namespace chaindb {
return payer.to_string();
}

inline string get_owner_name(const account_name& owner) {
return owner.to_string();
}

///----

inline string get_table_name(const table_name& table) {
Expand Down
4 changes: 1 addition & 3 deletions libraries/chain/include/cyberway/chaindb/object_value.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ namespace cyberway { namespace chaindb {
struct service_state final {
primary_key_t pk = primary_key::Unset;
account_name_t payer = 0;
account_name_t owner = 0;
int size = 0;
bool in_ram = true;

Expand All @@ -33,7 +32,6 @@ namespace cyberway { namespace chaindb {

revision_t undo_revision = impossible_revision;
account_name_t undo_payer = 0;
account_name_t undo_owner = 0;
size_t undo_size = 0;
bool undo_in_ram = true;

Expand Down Expand Up @@ -89,4 +87,4 @@ namespace cyberway { namespace chaindb {
} } // namespace cyberway::chaindb

FC_REFLECT_ENUM(cyberway::chaindb::undo_record, (Unknown)(OldValue)(RemovedValue)(NewValue)(NextPk))
FC_REFLECT(cyberway::chaindb::service_state, (owner)(size)(in_ram))
FC_REFLECT(cyberway::chaindb::service_state, (payer)(size)(in_ram))
1 change: 0 additions & 1 deletion libraries/chain/transaction_context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -550,7 +550,6 @@ namespace bacc = boost::accumulators;
if (available_resources.update_storage_usage(storage)) {
available_resources.check_cpu_usage((now - pseudo_start).count());
}
// TODO: issue #480 - ICE BW
auto& rl = control.get_mutable_resource_limits_manager();
rl.add_storage_usage(storage.payer, storage.delta, control.pending_block_slot());
}
Expand Down
2 changes: 1 addition & 1 deletion libraries/chain/wasm_chaindb_interface.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ namespace eosio { namespace chain {
"Object with the primary key ${pk} in the table ${table}:${scope} already has RAM state = ${state}",
("pk", pk)("table", chaindb::get_full_table_name(request))("scope", scope));

auto info = context.get_storage_payer(service.owner, service.payer);
auto info = context.get_storage_payer(service.payer, service.payer);
info.in_ram = in_ram;
context.chaindb.change_ram_state(*cache_ptr.get(), info);
}
Expand Down
2 changes: 0 additions & 2 deletions plugins/chain_api_plugin/chain_api_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,6 @@ get_table_rows_result chain_api_plugin_impl::walk_table_row_range(const get_tabl
("scope", cyberway::chaindb::scope_name::from_table(index).to_string())
("primary", cyberway::chaindb::primary_key::from_table(index, object.service.pk).to_string())
("payer", chain::account_name(object.service.payer))
("owner", chain::account_name(object.service.owner))
("size", object.service.size)
("in_ram", object.service.in_ram);
result.rows.push_back(std::move(value));
Expand Down Expand Up @@ -817,7 +816,6 @@ get_scheduled_transactions_result chain_api_plugin_impl::get_scheduled_transacti
("trx_id", itr->trx_id)
("sender", itr->sender)
("sender_id", itr->sender_id)
("owner", chain::account_name(itr.service().owner))
("payer", chain::account_name(itr.service().payer))
("delay_until", itr->delay_until)
("expiration", itr->expiration)
Expand Down

0 comments on commit 9196de5

Please sign in to comment.