Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: fuweid The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Codecov Report❌ Patch coverage is Additional details and impacted files
... and 13 files with indirect coverage changes @@ Coverage Diff @@
## main #21465 +/- ##
==========================================
- Coverage 68.47% 68.36% -0.11%
==========================================
Files 428 430 +2
Lines 35291 35439 +148
==========================================
+ Hits 24165 24229 +64
- Misses 9730 9806 +76
- Partials 1396 1404 +8 Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
/retest |
Add client/v3/internal/pb/clone.go as a temporary gogo clone helper, keep clone boundaries when txn/op code retains compare state, and update the namespace/leasing/grpcproxy/etcdctl/robustness paths to use the new representation. ``` goos: linux goarch: amd64 pkg: go.etcd.io/etcd/client/v3 cpu: AMD Ryzen 7 5800H with Radeon Graphics │ /tmp/bench-old.txt │ /tmp/bench-new.txt │ /tmp/bench-new-without-clone.txt │ │ sec/op │ sec/op vs base │ sec/op vs base │ TxnIfSingleCmp-16 160.6n ± ∞ ¹ 1383.0n ± ∞ ¹ ~ (p=1.000 n=1) ² 643.2n ± ∞ ¹ ~ (p=1.000 n=1) ² KubernetesOptimisticPutTxnBuild-16 953.5n ± ∞ ¹ 2286.0n ± ∞ ¹ ~ (p=1.000 n=1) ² 1494.0n ± ∞ ¹ ~ (p=1.000 n=1) ² OpTxnSingleCmpToTxnRequest-16 880.1n ± ∞ ¹ 2794.0n ± ∞ ¹ ~ (p=1.000 n=1) ² 1247.0n ± ∞ ¹ ~ (p=1.000 n=1) ² geomean 512.7n 2.067µ +303.19% 1.062µ +107.17% ¹ need >= 6 samples for confidence interval at level 0.95 ² need >= 4 samples to detect a difference at alpha level 0.05 │ /tmp/bench-old.txt │ /tmp/bench-new.txt │ /tmp/bench-new-without-clone.txt │ │ B/op │ B/op vs base │ B/op vs base │ TxnIfSingleCmp-16 304.0 ± ∞ ¹ 600.0 ± ∞ ¹ ~ (p=1.000 n=1) ² 448.0 ± ∞ ¹ ~ (p=1.000 n=1) ² KubernetesOptimisticPutTxnBuild-16 2.008Ki ± ∞ ¹ 2.297Ki ± ∞ ¹ ~ (p=1.000 n=1) ² 2.148Ki ± ∞ ¹ ~ (p=1.000 n=1) ² OpTxnSingleCmpToTxnRequest-16 1.867Ki ± ∞ ¹ 1.844Ki ± ∞ ¹ ~ (p=1.000 n=1) ² 1.539Ki ± ∞ ¹ ~ (p=1.000 n=1) ² geomean 1.036Ki 1.354Ki +30.64% 1.131Ki +9.13% ¹ need >= 6 samples for confidence interval at level 0.95 ² need >= 4 samples to detect a difference at alpha level 0.05 │ /tmp/bench-old.txt │ /tmp/bench-new.txt │ /tmp/bench-new-without-clone.txt │ │ allocs/op │ allocs/op vs base │ allocs/op vs base │ TxnIfSingleCmp-16 5.000 ± ∞ ¹ 10.000 ± ∞ ¹ ~ (p=1.000 n=1) ² 7.000 ± ∞ ¹ ~ (p=1.000 n=1) ² KubernetesOptimisticPutTxnBuild-16 22.00 ± ∞ ¹ 27.00 ± ∞ ¹ ~ (p=1.000 n=1) ² 24.00 ± ∞ ¹ ~ (p=1.000 n=1) ² OpTxnSingleCmpToTxnRequest-16 21.00 ± ∞ ¹ 28.00 ± ∞ ¹ ~ (p=1.000 n=1) ² 21.00 ± ∞ ¹ ~ (p=1.000 n=1) ³ geomean 13.22 19.63 +48.47% 15.22 +15.16% ¹ need >= 6 samples for confidence interval at level 0.95 ² need >= 4 samples to detect a difference at alpha level 0.05 ³ all samples are equal ``` Co-authored-by: Jordan Liggitt <liggitt@google.com> Signed-off-by: Wei Fu <fuweid89@gmail.com>
Switch concurrency.Election.Observe and mirror.Syncer.SyncBase from GetResponse values to *GetResponse. Update the etcdctl election observer and add integration coverage for multiple Observe updates to verify each event returns a fresh response wrapper. Also manually copy lease cache responses/headers to avoid shared mutable state in future. Signed-off-by: Wei Fu <fuweid89@gmail.com>
Keep close/progress responses safe by always providing a non-nil header, and update downstream users to match pointer semantics: - cache demux progress responses - concurrency election observe path - grpcproxy watcher/watch cancel path - etcdctl watch printers Signed-off-by: Wei Fu <fuweid89@gmail.com>
Signed-off-by: Wei Fu <fuweid89@gmail.com>
switch ctlv3 command printer/watch paths to pointer-based gogopb response handling, and read protobuf-backed fields via GetXXX() just in case input is nil. In tests/framework/e2e/etcdctl.go, txn output is decoded into command.TxnResponseJSON and converted with ToProto(), instead of hand-building ResponseOp variants before json.Unmarshal. Co-authored-by: Jordan Liggitt <liggitt@google.com> Signed-off-by: Wei Fu <fuweid89@gmail.com>
keep WAL snapshot tracking on pointer form as well:
- change WAL.start from walpb.Snapshot to *walpb.Snapshot
- in openAtIndex, normalize nil input to &walpb.Snapshot{} and store pointer start
- keep ReadAll math/error path on getters (GetIndex/GetTerm) for pointer-safe access
- update WAL test fixture to pass start as pointer
Signed-off-by: Wei Fu <fuweid89@gmail.com>
stop passing mvcc gogopb structs around by value in txn/watch paths. - change mvcc interfaces/results to pointer forms: - RangeResult.KVs: []mvccpb.KeyValue -> []*mvccpb.KeyValue - TxnWrite.Changes: []mvccpb.KeyValue -> []*mvccpb.KeyValue - watch event batches: []mvccpb.Event -> []*mvccpb.Event - update txn rpc assembly to reuse pointers directly instead of &slice[i] copies - update watch send/filter pipeline (mvcc, v3rpc, grpcproxy) to pointer events - update sendFragments to build per-fragment WatchResponse explicitly (avoid proto struct value copy) - add TestWatchResponseProtoFieldCount to catch future WatchResponse field additions - adjust compare/filter helpers to pointer args - update affected mvcc/watch tests accordingly Signed-off-by: Wei Fu <fuweid89@gmail.com>
switch revKeyValue.kv from mvccpb.KeyValue to *mvccpb.KeyValue and unmarshal into a newly allocated KeyValue in restoreChunk. this removes gogopb-by-value usage in restore/index rebuild and keeps pb handling aligned with pointer-based paths. Signed-off-by: Wei Fu <fuweid89@gmail.com>
…t path Switch EtcdServer.raftRequestOnce, EtcdServer.raftRequest, and EtcdServer.processInternalRaftRequestOnce to take *etcdserverpb.InternalRaftRequest. Signed-off-by: Wei Fu <fuweid89@gmail.com>
Signed-off-by: Wei Fu <fuweid89@gmail.com>
Also using String() instead of %+v for proto struct Signed-off-by: Wei Fu <fuweid89@gmail.com>
Signed-off-by: Wei Fu <fuweid89@gmail.com>
Signed-off-by: Wei Fu <fuweid89@gmail.com>
Signed-off-by: Wei Fu <fuweid89@gmail.com>
|
/retest |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
No description provided.