Skip to content

Implement exponential retry/back-off strategy to avoid router overloading. #244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Apr 29, 2021

Conversation

aentinger
Copy link
Contributor

No description provided.

@aentinger aentinger added the type: enhancement Proposed improvement label Apr 27, 2021
@aentinger aentinger self-assigned this Apr 27, 2021
@codecov-commenter
Copy link

codecov-commenter commented Apr 27, 2021

Codecov Report

Merging #244 (621c1a3) into master (e5a6256) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #244   +/-   ##
=======================================
  Coverage   95.15%   95.15%           
=======================================
  Files          24       24           
  Lines         867      867           
=======================================
  Hits          825      825           
  Misses         42       42           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e5a6256...621c1a3. Read the comment docs.

@aentinger aentinger marked this pull request as ready for review April 28, 2021 08:09
@arduino-libraries arduino-libraries deleted a comment from github-actions bot Apr 28, 2021
@arduino-libraries arduino-libraries deleted a comment from github-actions bot Apr 28, 2021
@arduino-libraries arduino-libraries deleted a comment from github-actions bot Apr 28, 2021
@facchinm
Copy link
Contributor

I think the big overhead could be due to pow() or std::min. Can we use arduino's min or a simplified version of pow() based on bitshift?

@arduino-libraries arduino-libraries deleted a comment from github-actions bot Apr 28, 2021
@arduino-libraries arduino-libraries deleted a comment from github-actions bot Apr 28, 2021
@aentinger
Copy link
Contributor Author

Hi @facchinm 👋
I was wondering too why such a large increase of flash consumption happened. Good catch! I've replaced it with bit-shift mechanics although I don't particularly like that due to readability. However, the reduction in flash speaks for itself 👍

With regards to std::min - that was a workaround to allow compilation on all platforms, I've also dropped it (the whole commit).

@github-actions
Copy link

Memory usage change @ c543d14

Board flash % RAM for global variables %
arduino:mbed:envie_m4 🔺 +128 - +192 +0.01 - +0.02 🔺 +8 - +8 0.0 - 0.0
arduino:mbed:envie_m7 🔺 +184 - +192 +0.02 - +0.02 🔺 +8 - +8 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 🔺 0 - +104 0.0 - 0.0 🔺 0 - +8 0.0 - 0.0
arduino:samd:mkr1000 🔺 +152 - +152 +0.06 - +0.06 🔺 +8 - +8 +0.02 - +0.02
arduino:samd:mkrgsm1400 🔺 +160 - +160 +0.06 - +0.06 🔺 +8 - +8 +0.02 - +0.02
arduino:samd:mkrnb1500 🔺 +152 - +152 +0.06 - +0.06 🔺 +8 - +8 +0.02 - +0.02
arduino:samd:mkrwan1300 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwifi1010 🔺 0 - +152 0.0 - +0.06 🔺 0 - +8 0.0 - +0.02
arduino:samd:nano_33_iot 🔺 0 - +152 0.0 - +0.06 🔺 0 - +8 0.0 - +0.02
esp32:esp32:esp32 🔺 +164 - +164 +0.01 - +0.01 🔺 +8 - +8 0.0 - 0.0
esp8266:esp8266:huzzah 🔺 +156 - +172 +0.01 - +0.02 🔺 +52 - +52 +0.06 - +0.06
Click for full report table
Board examples/ArduinoIoTCloud-Advanced
flash
% examples/ArduinoIoTCloud-Advanced
RAM for global variables
% examples/ArduinoIoTCloud-Basic
flash
% examples/ArduinoIoTCloud-Basic
RAM for global variables
% examples/utility/ArduinoIoTCloud_Travis_CI
flash
% examples/utility/ArduinoIoTCloud_Travis_CI
RAM for global variables
% examples/utility/Provisioning
flash
% examples/utility/Provisioning
RAM for global variables
% examples/utility/SelfProvisioning
flash
% examples/utility/SelfProvisioning
RAM for global variables
%
arduino:mbed:envie_m4 128 0.01 8 0.0 192 0.02 8 0.0 184 0.02 8 0.0 192 0.02 8 0.0
arduino:mbed:envie_m7 192 0.02 8 0.0 184 0.02 8 0.0 184 0.02 8 0.0 192 0.02 8 0.0
arduino:mbed_nano:nanorp2040connect 104 0.0 8 0.0 104 0.0 8 0.0 104 0.0 8 0.0 96 0.0 8 0.0 0 0.0 0 0.0
arduino:samd:mkr1000 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02
arduino:samd:mkrgsm1400 160 0.06 8 0.02 160 0.06 8 0.02 160 0.06 8 0.02 160 0.06 8 0.02
arduino:samd:mkrnb1500 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02
arduino:samd:mkrwan1300 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
arduino:samd:mkrwifi1010 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02 144 0.05 8 0.02 0 0.0 0 0.0
arduino:samd:nano_33_iot 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02 152 0.06 8 0.02 0 0.0 0 0.0
esp32:esp32:esp32 164 0.01 8 0.0 164 0.01 8 0.0 164 0.01 8 0.0
esp8266:esp8266:huzzah 156 0.01 52 0.06 172 0.02 52 0.06 156 0.01 52 0.06
Click for full report CSV
Board,examples/ArduinoIoTCloud-Advanced<br>flash,%,examples/ArduinoIoTCloud-Advanced<br>RAM for global variables,%,examples/ArduinoIoTCloud-Basic<br>flash,%,examples/ArduinoIoTCloud-Basic<br>RAM for global variables,%,examples/utility/ArduinoIoTCloud_Travis_CI<br>flash,%,examples/utility/ArduinoIoTCloud_Travis_CI<br>RAM for global variables,%,examples/utility/Provisioning<br>flash,%,examples/utility/Provisioning<br>RAM for global variables,%,examples/utility/SelfProvisioning<br>flash,%,examples/utility/SelfProvisioning<br>RAM for global variables,%
arduino:mbed:envie_m4,128,0.01,8,0.0,192,0.02,8,0.0,184,0.02,8,0.0,192,0.02,8,0.0
arduino:mbed:envie_m7,192,0.02,8,0.0,184,0.02,8,0.0,184,0.02,8,0.0,192,0.02,8,0.0
arduino:mbed_nano:nanorp2040connect,104,0.0,8,0.0,104,0.0,8,0.0,104,0.0,8,0.0,96,0.0,8,0.0,0,0.0,0,0.0
arduino:samd:mkr1000,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,,,,
arduino:samd:mkrgsm1400,160,0.06,8,0.02,160,0.06,8,0.02,160,0.06,8,0.02,160,0.06,8,0.02,,,,
arduino:samd:mkrnb1500,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,,,,
arduino:samd:mkrwan1300,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,,,,,,,,
arduino:samd:mkrwifi1010,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,144,0.05,8,0.02,0,0.0,0,0.0
arduino:samd:nano_33_iot,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,152,0.06,8,0.02,0,0.0,0,0.0
esp32:esp32:esp32,164,0.01,8,0.0,164,0.01,8,0.0,164,0.01,8,0.0,,,,,,,,
esp8266:esp8266:huzzah,156,0.01,52,0.06,172,0.02,52,0.06,156,0.01,52,0.06,,,,,,,,

@aentinger aentinger merged commit d0cf80d into master Apr 29, 2021
@aentinger aentinger deleted the exponential-retry branch April 29, 2021 05:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants