-
Notifications
You must be signed in to change notification settings - Fork 34
[Data-Plane Mgr] Support GoalStateV2 for UnicastGS and MulticastGS #625
Conversation
Codecov Report
@@ Coverage Diff @@
## master #625 +/- ##
=========================================
Coverage 31.90% 31.90%
Complexity 1249 1249
=========================================
Files 525 525
Lines 13490 13490
Branches 1669 1669
=========================================
Hits 4304 4304
Misses 8598 8598
Partials 588 588 Continue to review full report at Codecov.
|
|
|
||
| public UnicastGoalStateByte getUnicastGoalStateByte() { | ||
| UnicastGoalStateByte unicastGoalStateByte = new UnicastGoalStateByte(); | ||
| unicastGoalStateByte.setNextTopic(this.topic); |
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.
@VanderChen We would need to setNextSubTopic as well, right?
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 involves another question, whether use Pulsar worker to forward messages. This design was originally used to solve the multiple sending problem of multicastGS. DPM only needs to send GS once, and the worker will complete it multiple times. To be consistent, UnicastGS also uses the worker forwarding method.
i.e.
DPM(UniWorkerTopic, (NextTopic, GS)) -- (NextTopic, GS)--> Pulsar Worker(NextTopic, GS) --(GS)--> ACA
DPM(MultiWorkerTopic, (List, GS)) --(List, GS)--> Pulsar Worker(Traversal_NextTopic, GS) --(GS)--> ACA
Thus, considering compatibility with the current version and not sending more information to the worker, I did not add it. I'm not sure if this is the right thing to do.
There are two options for those containing SubTopic. One is not to use workers, this does not require the UnicastGoalStateByte class. The other is to deploy new Pulsar Workers. I prefer the former one.
i.e.
DPM((Topic, SubTopic), GS) --(GS)--> ACA
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.
I am not quite sure what's problem here. Where is the Pulsar worker located? In the DPM (such as pulsarClient in the pulsar\DataPlaneClientImpl.java) or somewhere else?
Does your prefer way to eliminate Pulsar worker and rely on the GRPC's unicast and multicast goalstates?
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.
Do you have this problem resolved? Let us discuss it in today's open-source meeting.
...a_plane_manager/src/main/java/com/futurewei/alcor/dataplane/entity/MulticastGoalStateV2.java
Show resolved
Hide resolved
|
We need to move this PR forward @VanderChen |
xieus
left a comment
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.
@VanderChen A few more comments.
| List<String> sendGoalStates(List<UnicastGoalState> unicastGoalStates, | ||
| MulticastGoalState multicastGoalState) throws Exception; | ||
|
|
||
| // List<String> sendGoalStates(List<UnicastGoalStateV2> unicastGoalStates) throws Exception; |
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.
Remove the commented line if not needed.
|
|
||
| public UnicastGoalStateByte getUnicastGoalStateByte() { | ||
| UnicastGoalStateByte unicastGoalStateByte = new UnicastGoalStateByte(); | ||
| unicastGoalStateByte.setNextTopic(this.topic); |
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.
Do you have this problem resolved? Let us discuss it in today's open-source meeting.
...a_plane_manager/src/main/java/com/futurewei/alcor/dataplane/entity/MulticastGoalStateV2.java
Show resolved
Hide resolved
|
|
||
| public class MulticastGoalStateByte { | ||
| private List<String> nextTopics; | ||
| private List<String> nextSubTopics; |
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 adding this new field break any existing workflow?
|
There are two conflicting files: |
|
This pull request introduces 7 alerts when merging 3ca09c0 into 2cc0269 - view on LGTM.com new alerts:
|
|
This pull request introduces 8 alerts when merging 9b6bc7f into 016b3e9 - view on LGTM.com new alerts:
|
|
This pull request introduces 8 alerts when merging 14a4738 into 016b3e9 - view on LGTM.com new alerts:
|
|
This pull request introduces 8 alerts when merging aa76721 into 91af57e - view on LGTM.com new alerts:
|
|
All tests in Jenkins have passed |
cj-chung
left a comment
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.
Those overloaded functions for goalstateV2 under dataplane/service/impl/*Service.java may not needed anymore after we have new version of DPM for goalstateV2 and NCM, but for now we can merge it first for goalstateV1 and goalstateV2 compatibility.
| mq.type=pulsar | ||
| #####Pulsar configuration##### | ||
| pulsar.url=pulsar://localhost:6650 | ||
| pulsar.url=pulsar://192.168.1.105:6650 |
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.
@VanderChen It is the best practice not checking in any configuration specific to a dev environment. Please consider changing it in your next PR #695.
No description provided.