Skip to content

[22604] Filter interested readers on PDP writer#5604

Merged
MiguelCompany merged 14 commits intomasterfrom
bugfix/22708
Feb 21, 2025
Merged

[22604] Filter interested readers on PDP writer#5604
MiguelCompany merged 14 commits intomasterfrom
bugfix/22708

Conversation

@MiguelCompany
Copy link
Copy Markdown
Member

@MiguelCompany MiguelCompany commented Jan 28, 2025

Description

This fixes a high CPU and network usage situation with PDP simple discovery when a new participant is created in a network where there is a high number of existing participants.

@Mergifyio backport 3.1.x 3.0.x
An ABI compatible backport would be manually done to 2.14.x, and we will backport to other 2.x supported branches from there.

Contributor Checklist

  • Commit messages follow the project guidelines.
  • The code follows the style guidelines of this project.
  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally
  • Any new/modified methods have been properly documented using Doxygen.
  • N/A: Any new configuration API has an equivalent XML API (with the corresponding XSD extension)
  • Changes are backport compatible: they do NOT break ABI nor change library core behavior.
  • Changes are API compatible.
  • N/A: New feature has been added to the versions.md file (if applicable).
  • N/A: New feature has been documented/Current behavior is correctly described in the documentation.
  • Applicable backports have been included in the description.

Reviewer Checklist

  • The PR has a milestone assigned.
  • The title and description correctly express the PR's purpose.
  • Check contributor checklist is correct.
  • If this is a critical bug fix, backports to the critical-only supported branches have been requested.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

@github-actions github-actions bot added the ci-pending PR which CI is running label Jan 28, 2025
@MiguelCompany MiguelCompany requested review from richiware and removed request for richiware January 28, 2025 12:09
@MiguelCompany MiguelCompany force-pushed the bugfix/22708 branch 2 times, most recently from 490687a to 633530a Compare January 28, 2025 15:44
@MiguelCompany MiguelCompany added this to the v3.2.0 milestone Jan 28, 2025
@MiguelCompany MiguelCompany requested review from richiware and removed request for richiware January 28, 2025 19:08
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
…d of an `std::set`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
richiware
richiware previously approved these changes Feb 18, 2025
@MiguelCompany
Copy link
Copy Markdown
Member Author

BlackboxTests_DDS_PIM.DDSMonitorServiceTest.monitor_service_advanced_multiple_late_joiners failed twice in a row on Windows. Will investigate.

Reducing announcement period to improve discovery timing.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
@MiguelCompany MiguelCompany merged commit 8eb1072 into master Feb 21, 2025
17 checks passed
@MiguelCompany MiguelCompany deleted the bugfix/22708 branch February 21, 2025 09:14
@MiguelCompany
Copy link
Copy Markdown
Member Author

@Mergifyio backport 3.1.x

@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Feb 21, 2025

backport 3.1.x

✅ Backports have been created

Details

mergify bot pushed a commit that referenced this pull request Feb 21, 2025
* Refs #22506. Regression test.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Add `PDPStatelessWriter` extending `StatelessWriter`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Use `PDPStatelessWriter` in `SimplePDPEndpoints`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Move specific API to `PDPStatelessWriter`.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Initial work on management of interested writers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Take advantage of single sample history.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Reset state after sending datagram.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Filter interested readers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Do not reset unsent changes upon participant discovery.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Fix AsymmeticIgnoreParticipantFlags test.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Create sender resources for matched readers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22708. Rename methods.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22708. Avoid allocations using a `ResourceLimitedVector` instead of an `std::set`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22604. Improve monitor service blackbox tests.

Reducing announcement period to improve discovery timing.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit 8eb1072)
MiguelCompany added a commit that referenced this pull request Mar 5, 2025
* Refs #22506. Regression test.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Add `PDPStatelessWriter` extending `StatelessWriter`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Use `PDPStatelessWriter` in `SimplePDPEndpoints`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Move specific API to `PDPStatelessWriter`.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Initial work on management of interested writers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Take advantage of single sample history.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Reset state after sending datagram.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Filter interested readers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Do not reset unsent changes upon participant discovery.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Fix AsymmeticIgnoreParticipantFlags test.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22506. Create sender resources for matched readers.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22708. Rename methods.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22708. Avoid allocations using a `ResourceLimitedVector` instead of an `std::set`

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

* Refs #22604. Improve monitor service blackbox tests.

Reducing announcement period to improve discovery timing.

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

---------

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
(cherry picked from commit 8eb1072)

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request Mar 17, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
mergify bot pushed a commit that referenced this pull request Mar 17, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
(cherry picked from commit b56b56a)

# Conflicts:
#	src/cpp/rtps/participant/RTPSParticipantImpl.cpp
#	test/blackbox/api/fastrtps_deprecated/PubSubParticipant.hpp
#	test/blackbox/common/DDSBlackboxTestsMonitorService.cpp
#	test/unittest/statistics/dds/CMakeLists.txt
EugenioCollado added a commit that referenced this pull request Mar 17, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Manual conflicts resolution from  commit b56b56a

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request May 14, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Manual conflicts resolution from  commit b56b56a

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request May 16, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Manual conflicts resolution from  commit b56b56a

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request May 16, 2025
* Refs #22506. Regression test.

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Refs #22506. Filter interested readers on PDP writer

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix IncompatibleQosGetters

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

* Fix PubSubParticipant rtps deprecated

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>

---------

Manual conflicts resolution from  commit b56b56a

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
MiguelCompany pushed a commit that referenced this pull request May 16, 2025
* Refs #22506. Regression test.



* Refs #22506. Filter interested readers on PDP writer



* Fix IncompatibleQosGetters



* Fix PubSubParticipant rtps deprecated



---------

Manual conflicts resolution from  commit b56b56a

Signed-off-by: Eugenio Collado <eugeniocollado@eprosima.com>
Co-authored-by: Eugenio Collado <eugeniocollado@eprosima.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-pending PR which CI is running

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants