-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Split DataDistribution.actor.cpp
into multiple files
#6342
Split DataDistribution.actor.cpp
into multiple files
#6342
Conversation
This passed 100k simulation tests: |
AWS CodeBuild CI Report for Linux CentOS 7
|
AWS CodeBuild CI Report for macOS BigSur 11.5.2
|
Doxense CI Report for Windows 10
|
fdbserver/DDTeamCollection.actor.cpp
Outdated
* | ||
* This source file is part of the FoundationDB open source project | ||
* | ||
* Copyright 2013-2018 Apple Inc. and the FoundationDB project authors |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this need to be updated manually? Or is there an automated process? Or does it not matter? Same question for the .h
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be added manually for each new file.
#include "flow/BooleanParam.h" | ||
#include "flow/Trace.h" | ||
#include "flow/UnitTest.h" | ||
#include "flow/actorcompiler.h" // This must be the last #include. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious. Is this list of includes tested for necessity somehow, using IWYU or some such?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, there is no automated testing of the necessity of these includes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK no one has looked into using IWYU to clean up the includes. It would be nice to use, but it may be tricky to get working with the actor compiler.
return Reference<TCMachineTeamInfo>(); | ||
} | ||
|
||
void DDTeamCollection::traceServerInfo() const { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious: Why the different treatment for this trace method from other similar trace methods in the DDTeamCollection class?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The get
helper function in DDTeamCollection.actor.cpp
is needed in the implementation here, so I had to move the implementation here in order to compile. In a future PR, I plan to move all non-trivial implementations out of the header file.
AWS CodeBuild CI Report for Linux CentOS 7
|
Doxense CI Report for Windows 10
|
AWS CodeBuild CI Report for Linux CentOS 7
|
Doxense CI Report for Windows 10
|
fd16207
to
ca7fb0b
Compare
Doxense CI Report for Windows 10
|
AWS CodeBuild CI Report for macOS BigSur 11.5.2
|
AWS CodeBuild CI Report for Linux CentOS 7
|
AWS CodeBuild CI Report for Linux CentOS 7
|
Doxense CI Report for Windows 10
|
Doxense CI Report for Windows 10
|
AWS CodeBuild CI Report for macOS BigSur 11.5.2
|
AWS CodeBuild CI Report for Linux CentOS 7
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
XXXImpl class may be the best practice addressing the issue the ACTOR must be a static method and the static method must be defined within a class...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
One slightly related question not limited to this PR. In many places in the code base, implementations code is written in the header files, instead of separate .cpp files, are there any reasons for this? IIUIC, the separation of .h and .cpp could also help improve the compile speed.
The only reason for leaving the implementations in header files now is to avoid merge conflicts as much as possible. In a future PR the non-trivial implementations will be moved into |
dcbbee5
AWS CodeBuild CI Report for Linux CentOS 7
|
Doxense CI Report for Windows 10
|
Doxense CI Report for Windows 10
|
AWS CodeBuild CI Report for macOS BigSur 11.5.2
|
This passed another 100k tests after fixing merge conflicts: |
AWS CodeBuild CI Report for Linux CentOS 7
|
This addresses #3603. This change can help with incremental compilation time and help to decouple the interfaces and implementations of various components of data distribution. There are future changes to come (to improve encapsulation, const-correctness, etc.), but this one will have the most merge conflicts, so I am creating this pull request first to avoid future conflicts.
Code-Reviewer Section
The general guidelines can be found here.
Please check each of the following things and check all boxes before accepting a PR.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
release-branch
ormaster
if this is the youngest branch)