iotaledger / iri

IOTA Reference Implementation
Other
1.15k stars 370 forks source link

Solidify transactions we walk across while doing GTTA #1826

Closed GalRogozinski closed 4 years ago

GalRogozinski commented 4 years ago

Description

While doing GTTA we will attempt to solidify transactions we walk across. This will make sure that transactions that we missed out on for whatever reason will solidify

Fixes #1818

Type of change

How Has This Been Tested?

I ran both 1.8.5 and a canary with this change. I called GTTA in a loop on both with JMETER

GTTA with this change was still faster compared to 1.8.5. Throughput: 176.662 ops/minute compared to 71.603 ops/minute

However, profiling showed that solidifying takes 30 % of cpu time...

Checklist:

GalRogozinski commented 4 years ago

@kwek20

What made you chose this dummy solidifier instead of a null check? Probably same speed after optimizing, but just wondering. I would generally not chose the empty class approach.

I am just wired to use polymorphism instead of if-else. In some cases it makes way shorter readable code. In this case, it matters less and maybe the null check is better. The "advantage" here is that now you are ready to inject other imps in other places the WalkValidator is called from. But we probably won't use it. Anyhow, this change will be changed by Dyrell and he can choose another approach

Theres no issue linked

Fixed :-)