Skip to content

Commit c07a4f9

Browse files
authored
Merge pull request EOSLaoMao#13 from EOSLaoMao/feature/sequence-as-action-trace-id
use global sequence id as action trace id
2 parents 1dfde56 + 5fc053d commit c07a4f9

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

elastic_client.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class elastic_client
1111
{
1212
public:
1313
elastic_client(const std::vector<std::string> url_list, const std::string &user, const std::string &password)
14-
:client(url_list, user, password, 100000) {};
14+
:client(url_list, user, password, std::numeric_limits<int32_t>::max()) {};
1515

1616
void delete_index(const std::string &index_name);
1717
void init_index(const std::string &index_name, const std::string &mappings);

elasticsearch_plugin.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -599,11 +599,10 @@ void elasticsearch_plugin_impl::upsert_account(
599599
void elasticsearch_plugin_impl::_process_applied_transaction( chain::transaction_trace_ptr t ) {
600600

601601
std::unordered_map<uint64_t, std::pair<std::string, fc::mutable_variant_object>> account_upsert_actions;
602-
std::vector<std::pair<uint64_t, std::reference_wrapper<chain::base_action_trace>>> base_action_traces; // without inline action traces
602+
std::vector<std::reference_wrapper<chain::base_action_trace>> base_action_traces; // without inline action traces
603603

604604
bool executed = t->receipt.valid() && t->receipt->status == chain::transaction_receipt_header::executed;
605605

606-
uint64_t action_count = 0;
607606
std::stack<std::reference_wrapper<chain::action_trace>> stack;
608607
for( auto& atrace : t->action_traces ) {
609608
stack.emplace(atrace);
@@ -619,9 +618,8 @@ void elasticsearch_plugin_impl::_process_applied_transaction( chain::transaction
619618

620619
if( start_block_reached && store_action_traces
621620
&& filter_include( atrace.receipt.receiver, atrace.act.name, atrace.act.authorization ) ) {
622-
base_action_traces.emplace_back(std::make_pair(action_count, std::ref(atrace)));
621+
base_action_traces.emplace_back( atrace );
623622
}
624-
action_count++;
625623

626624
auto &inline_traces = atrace.inline_traces;
627625
for( auto it = inline_traces.rbegin(); it != inline_traces.rend(); ++it ) {
@@ -686,9 +684,9 @@ void elasticsearch_plugin_impl::_process_applied_transaction( chain::transaction
686684
auto now = std::chrono::duration_cast<std::chrono::milliseconds>(
687685
std::chrono::microseconds{fc::time_point::now().time_since_epoch().count()});
688686

689-
for (auto& p : base_action_traces) {
687+
for (auto& atrace : base_action_traces) {
690688
fc::mutable_variant_object action_traces_doc;
691-
chain::base_action_trace &base = p.second.get();
689+
chain::base_action_trace &base = atrace.get();
692690
fc::from_variant( abi_deserializer->to_variant_with_abi( base ), action_traces_doc );
693691

694692
fc::mutable_variant_object act_doc;
@@ -698,12 +696,10 @@ void elasticsearch_plugin_impl::_process_applied_transaction( chain::transaction
698696
action_traces_doc["act"] = act_doc;
699697
action_traces_doc("createAt", now.count());
700698

701-
auto id = boost::str(boost::format("%1%-%2%") % trx_id_str % p.first);
702-
703699
fc::mutable_variant_object action_doc;
704700
action_doc("_index", action_traces_index);
705701
action_doc("_type", "_doc");
706-
action_doc("_id", id);
702+
action_doc("_id", action_traces_doc["receipt"]["global_sequence"]);
707703
action_doc("retry_on_conflict", 100);
708704

709705
auto action = fc::json::to_string( fc::variant_object("index", action_doc) );

0 commit comments

Comments
 (0)