Skip to content

Conversation

@serejkaaa512
Copy link
Contributor

Pull Request Checklist

NODE CONFIGURATION MODEL CHANGES

None

BLOCKCHAIN CONFIGURATION MODEL CHANGES

None

COMPATIBILITY

  • Compatibility status: [fully compatible]

SPECIAL DEPLOYMENT ACTIONS

Not Required

PERFORMANCE IMPACT

No impact expected

TESTS

Unit Tests

No coverage

Network Tests

No coverage

Manual Tests

No coverage

let full_slots = self
.msgs
.iter()
.filter(|(_, msgs)| msgs.len() >= limits.slot_vert_size)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact, a slot isn’t filled with messages from only one account. So it’s incorrect to look for all accounts whose message count exceeds the vertical limit. A slot can contain messages from multiple accounts, but any given account can appear in only one slot. Thus, if our slot height is 10 and our buffer holds { A: 10, B: 4, C: 7 }, the slot may be filled entirely with A’s messages, or with a combination of B’s and C’s messages. Any remaining messages from B and C would then go unused in other slots.

The original idea was that a sorted_index by message count would simplify this calculation. But if benchmarks show that omitting the index isn’t any slower, we can do without it. Though we still need to compare.

@0xdeafbeef 0xdeafbeef force-pushed the master branch 6 times, most recently from 5a83fcb to 1b9e10a Compare July 3, 2025 13:49
@Rexagon Rexagon force-pushed the master branch 4 times, most recently from dad89c9 to 8d9ab65 Compare July 8, 2025 12:05
@SmaGMan SmaGMan force-pushed the feature/queue-stop branch from 78fae7e to 68f8f4b Compare August 11, 2025 14:40
@github-actions
Copy link

github-actions bot commented Aug 11, 2025

🧪 Network Tests

To run network tests for this PR, use:

gh workflow run network-tests.yml -f pr_number=784

Available test options:

  • Run all tests: gh workflow run network-tests.yml -f pr_number=784
  • Run specific test: gh workflow run network-tests.yml -f pr_number=784 -f test_selection=ping-pong

Test types: destroyable, ping-pong, one-to-many-internal-messages, fq-deploy, nft-index, persistent-sync

Results will be posted as workflow runs in the Actions tab.

@SmaGMan
Copy link
Contributor

SmaGMan commented Aug 12, 2025

Previous version have better performance on filling messages groups. Will not merge this change.

master
image

prev
image

@SmaGMan SmaGMan marked this pull request as draft August 12, 2025 15:05
@SmaGMan SmaGMan force-pushed the feature/queue-stop branch 2 times, most recently from 55eb003 to 5358a33 Compare August 13, 2025 10:49
@codecov
Copy link

codecov bot commented Sep 15, 2025

Codecov Report

❌ Patch coverage is 89.83051% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 46.67%. Comparing base (78499a7) to head (e119cc3).

Files with missing lines Patch % Lines
collator/src/collator/messages_buffer.rs 89.83% 10 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #784      +/-   ##
==========================================
+ Coverage   46.65%   46.67%   +0.01%     
==========================================
  Files         329      329              
  Lines       59147    59242      +95     
  Branches    59147    59242      +95     
==========================================
+ Hits        27596    27652      +56     
- Misses      30117    30148      +31     
- Partials     1434     1442       +8     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stop reading messages into buffer if we can already fill slots in message group

3 participants