Skip to content
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

New FlowController [11831] #1996

Merged
merged 70 commits into from
Aug 5, 2021
Merged

New FlowController [11831] #1996

merged 70 commits into from
Aug 5, 2021

Conversation

richiware
Copy link
Member

No description provided.

@richiware richiware changed the title WIP: New FlowController WIP: New FlowController [11831] Jun 17, 2021
@richiware richiware force-pushed the feature/sfc branch 3 times, most recently from 3e8f01d to ea4c8b4 Compare July 5, 2021 05:59
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

Partial review of files on include folder

include/fastdds/rtps/flowcontrol/FlowController.hpp Outdated Show resolved Hide resolved
include/fastdds/rtps/flowcontrol/FlowController.hpp Outdated Show resolved Hide resolved
include/fastdds/rtps/flowcontrol/FlowController.hpp Outdated Show resolved Hide resolved
include/fastdds/rtps/flowcontrol/FlowController.hpp Outdated Show resolved Hide resolved
include/fastdds/rtps/flowcontrol/FlowController.hpp Outdated Show resolved Hide resolved
include/fastdds/rtps/writer/ReaderProxy.h Outdated Show resolved Hide resolved
include/fastdds/rtps/writer/ReaderProxy.h Outdated Show resolved Hide resolved
include/fastdds/rtps/writer/StatefulWriter.h Show resolved Hide resolved
include/fastdds/rtps/writer/StatefulWriter.h Outdated Show resolved Hide resolved
include/fastdds/rtps/writer/StatelessWriter.h Show resolved Hide resolved
@MiguelCompany MiguelCompany added this to the v2.4.0 milestone Jul 8, 2021
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

Partial review. All sources except the big ones: FlowControllerImpl, RTPSMessageGroup, StatefulWriter, and StatelessWriter

src/cpp/CMakeLists.txt Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerFactory.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/RTPSWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/ReaderProxy.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/ReaderProxy.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/ReaderProxy.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/xmlparser/XMLParser.cpp Show resolved Hide resolved
@richiware richiware force-pushed the feature/sfc branch 3 times, most recently from bd0f7d5 to ca48535 Compare July 12, 2021 14:33
@richiware richiware changed the title WIP: New FlowController [11831] New FlowController [11831] Jul 13, 2021
include/fastdds/rtps/messages/RTPSMessageGroup.h Outdated Show resolved Hide resolved
include/fastdds/rtps/writer/ReaderProxy.h Outdated Show resolved Hide resolved
src/cpp/rtps/writer/ReaderProxy.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/ReaderProxy.cpp Outdated Show resolved Hide resolved
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

Minor changes on RTPSMessageGroup

include/fastdds/rtps/messages/RTPSMessageGroup.h Outdated Show resolved Hide resolved
src/cpp/rtps/messages/RTPSMessageGroup.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/messages/RTPSMessageGroup.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatelessWriter.cpp Outdated Show resolved Hide resolved
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

StatefulWriter

src/cpp/rtps/writer/StatefulWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatefulWriter.cpp Outdated Show resolved Hide resolved
src/cpp/rtps/writer/StatefulWriter.cpp Outdated Show resolved Hide resolved
@MiguelCompany
Copy link
Member

@richiprosima Please test windows

Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

FlowQueue

src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
@MiguelCompany MiguelCompany force-pushed the feature/sfc branch 2 times, most recently from 5c06879 to cf4e8b8 Compare July 21, 2021 06:58
@richiware richiware force-pushed the feature/sfc branch 2 times, most recently from d2e8264 to 77ea851 Compare July 22, 2021 05:43
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp Outdated Show resolved Hide resolved
MiguelCompany
MiguelCompany previously approved these changes Jul 23, 2021
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

LGTM! 🚀

@richiware
Copy link
Member Author

@richiprosima please test this

@richiware
Copy link
Member Author

@richiprosima please test aarch64

MiguelCompany and others added 16 commits August 3, 2021 10:13
Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
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>
…edule.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Copy link
Member

@MiguelCompany MiguelCompany left a comment

Choose a reason for hiding this comment

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

LGTM with green CI

@MiguelCompany
Copy link
Member

@richiprosima Please test mac

@MiguelCompany
Copy link
Member

@richiprosima Please test linux

2 similar comments
@MiguelCompany
Copy link
Member

@richiprosima Please test linux

@MiguelCompany
Copy link
Member

@richiprosima Please test linux

@MiguelCompany MiguelCompany merged commit 6b55651 into master Aug 5, 2021
@MiguelCompany MiguelCompany deleted the feature/sfc branch August 5, 2021 06:57
@EduPonz EduPonz added the doc-pending Issue or PR which is pending to be documented label Aug 9, 2021
SamuelWHalodi pushed a commit to SamuelWHalodi/Fast-DDS that referenced this pull request Oct 4, 2021
* Refs #11504. Added FlowController interface

Refs #11502. Add FlowController factory

Refs #11502. Add FlowControllerFactory

Refs #11503. Initialization of factory

Refs #11503. Initial integration of the factory

Refs #11505. Initial integration with StatelessWriter

Refs #11505. More integration with StatelessWriter

Refs #11509. Update CacheChange_t

Refs #11505. First implementation async thread.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Refs #11505. First integration with StatefulWriter

Refs #11505. Remove old async thread from StatelessWriter

Refs #11528. Integration with StatefulWriter

Refs #11611. Fix compilation error with security

Refs #11527. Start removing be+trasient

Refs #11655. Priorize new ones

Refs #11529. Global RTPSMessageGroup

Refs 11529. Fix deadlock.

Refs #11527. Remove besteffort + transient_local

Remove code not used

Refs #11676. Fix bug with intraprocess delivery

Refs #11676. Prepare for more schedulers

Refs #11676. Refactor calculation of fragments

Refs #11676. Fix error

Refs #11676. Add limitation of sent bytes in RTPSMessageGroup

Refs #11676. Remove TODO

Refs #11676. Remove TODOs

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix compilation errors

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix compilation errors

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fixes for discovery server.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Little change
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix error not sending heartbeat when matching a reader

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix error on Windows

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Send initial heartbeat also when history empty

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11792. Forget uncomment after testing

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix unprotected access

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Maintain old code
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix error in intraprocess

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix error in writer destruction
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix error with intraprocess.
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11676. Fix bug removing change from FlowControllerImpl

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Fix bug using datasharing and intraprocess.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11679. Implemented Round Robin
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11680. Add HIGH_PRIORITY scheduler

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11681. Implemented Priority with reservation scheduler.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Apply comment suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Added more blackbox tests

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Changes in location of code

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Move code movements

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Fix error in test after adding assertion

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Add skeleton for unit tests

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Add test for FlowControllerFactory

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Fix detected old error in test

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Add unit tests for publish modes

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Change TEST to TYPED_TEST

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Added schedulers unit tests

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11903. Fix compilation error.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11961. Fix rebase

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Apply suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Move header to private place

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Apply suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Apply suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Apply suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Apply suggestions.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Removed sending a gap with individually heartbeat.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>
Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Fix compilation error on Windows

Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Remove unnecessary condition in cmake

Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Fix uncrustify

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Apply suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix warning in gtest

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Apply suggestion

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Apply suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix error found by reviewer.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Apply suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix compilation error after apply suggestion

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Apply suggestions on StatelessWriter.

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Improve unit tests to avoid segfault

Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Improve FlowControllerRoundRobinSchedule

Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Avoid not discovery when testing intraprocess performance

Signed-off-by: Ricardo González <ricardo@richiware.dev>

* Refs #11831. Apply suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Fix build with statistics enabled.

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

* Refs #11831. Factorize common code on FlowQueue.

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

* Refs #11831. Uncrustify

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Decrease too much large waitings

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix exception on mac setting a socket option

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix inheritance on FlowControllerSyncPublishMode.

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

* Refs #11831. Improvements on FlowControllerRoundRobinSchedule.

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

* Refs #11831. Fallback setting of priority.

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

* Refs #11831. Improvements on FlowControllerHighPrioritySchedule.

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

* Refs #11831. Improvements on FlowControllerPriorityWithReservationSchedule.

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

* Refs #11831. Apply suggestion

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Fix random fail of a test

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Apply suggestions from code review

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Apply suggestions

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Update src/cpp/rtps/flowcontrol/FlowControllerImpl.hpp

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

* Refs #11831. Remove assert

Signed-off-by: Ricardo González Moreno <ricardo@richiware.dev>

Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: Samuel Wilhelmsson <samuel@halodi.com>
@MiguelCompany MiguelCompany removed the doc-pending Issue or PR which is pending to be documented label Oct 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants