Conversation
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
Codecov Report
@@ Coverage Diff @@
## master #2099 +/- ##
=========================================
+ Coverage 57.2% 57.2% +<.01%
=========================================
Files 117 117
Lines 20124 20123 -1
=========================================
+ Hits 11511 11512 +1
+ Misses 7285 7277 -8
- Partials 1328 1334 +6Continue to review full report at Codecov.
|
|
I wonder if we should split this |
|
I think separating |
|
Do you think we should take this change while working on |
|
Let's do it now so we don't need to make disruptive changes later. Would you mind opening a PR to change the name of what's currently the "store" service to "watch"? |
|
I'll open a PR. |
|
What do we gain by doing this (beside performance)? I'm a bit afraid of API explosion. Could this be part of control API? Could we set the forwarding per-method rather than per-service? Otherwise it feels like we're designing the API based on how we implemented the forwarder |
|
Proxying watch to leader is unreliable and inefficient. The client would need to detect connection failure and reconnect to new leader. It'd result in event loss. The loss events includes "leader switch" which is an important message. It increases load on leader where each manager would connect to the leader for change notifications. The leader suffers when manager number increases (which may surprise users). We have multiple managers but almost all the loads are on leader. I think we should find ways to reduce load on leader. |
|
I agree with @dongluochen that It's technically possible to change the proxying so that it can be disabled on a per-RPC basis, but I don't really like this idea. It means adding more complexity to the code generation, and making it harder to understand whether a certain RPC call will go to the leader or not. I prefer using a separate service. |
|
Replaced by #2102. |
Store watch API should get change from local store, not remote leader, as the changes are the same. Monitoring local is more reliable and efficient.
cc @aaronlehmann.
Signed-off-by: Dong Chen dongluo.chen@docker.com