Skip to content

Commit af3c9cc

Browse files
committed
asim: pass false to ReplicaChangeDelayFn for AllocationTransferLeaseOp
Previously, we incorrectly passed true to ReplicaChangeDelayFn for AllocationTransferLeaseOp, causing it to treat the operation like a replica addition and extend the delay based on range size and snapshot rate. Since lease transfers are expected to be much faster, this was unintended. This commit fixes the issue by applying only the base delay (ReplicaChangeBaseDelay) to AllocationTransferLeaseOp, which defaults to 100ms. Epic: none Release note: none
1 parent 5c2a22f commit af3c9cc

File tree

2 files changed

+30
-30
lines changed

2 files changed

+30
-30
lines changed

pkg/kv/kvserver/asim/queue/replicate_queue.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ func pushReplicateChange(
179179
RangeID: state.RangeID(change.Replica.GetRangeID()),
180180
TransferTarget: state.StoreID(op.Target.StoreID),
181181
Author: state.StoreID(op.Source.StoreID),
182-
Wait: delayFn(rng.Size(), true),
182+
Wait: delayFn(rng.Size(), false /* add */),
183183
}
184184
case plan.AllocationChangeReplicasOp:
185185
log.VEventf(ctx, 1, "pushing state change for range=%s, details=%s", rng, op.Details)

pkg/kv/kvserver/asim/tests/testdata/non_rand/example_fulldisk.txt

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,46 +23,46 @@ OK
2323
# store 5. This is shown below as it sheds replicas.
2424
plot stat=replicas
2525
----
26-
346╭╮╭╮ ╭╮╮╭╮ ╭╮╭╭─╮ ╭╮╮─╭─╮─╭╮─╭────╮─
27-
333 ┤ ╭╮ ╭╮ ╭╮╭╭╮╭╮─╭─╮╭╭──╮╮╭───╮╭─╮╭╮╭──────╮╭─╯╰─╯╮╰──╯╰──╯─╰─╯╰─╯╰─╯╰─╯
28-
320 ┤ ╭───╭──╮╭───────╮╭╯╰─╯╰╰─╯╰─╰─╯╰─╯││╯╰╯╰╯╯╯╰─╯ ╰╯ ╰─╯ ╰╯ ╰╯ ╰╰─╯ ╰─╯
29-
307 ┼╮────╯╯╯╰╯╯ ╰╯╰╯╯╰╯╯ ╰╯╰╯ ╰╯
30-
293 ┤╰╮
31-
280 ┤ │
32-
267 ┤ ╰╮╭╮ ╭╮
33-
254 ┤ ╰╯╰─╯│╭─╮ ╭╮
26+
347 ╭╮ ╭╮╭╭╮ ╭╮╭──╭╮─╭╮─╭╮─╭──╮╮
27+
334 ┤ ╭╮ ╭╮ ╭╮ ╭─╮╮╭╮──╭╮╮╭╮─╭───╮─╭──────╮╭──╮╭─╯╰╮╭──╯╰╮╭─╯╰─╯╰─╯╰─╯─╯│╰╭
28+
321 ┤ ╭───╭──╮╭───────╯╭│╭────╯╰─╯╰─╯╮╭─╰─╯╰╯╮╭╰─╯╰╯─╯╰╯╯╰─╰╯╰╮╭╯╰╯ ╰╯╰─╯ ╰─╯
29+
307 ┼╮────╯╯╯╰─╯╰╯╯╰╯╯ ╰╯╰╯╯ ╰╯ ╰╯ ╰╯ ╰╯ ╰╯
30+
294 ┤╰╮
31+
281 ┤ │
32+
268 ┤ ╰╮╭╮ ╭╮
33+
255 ┤ ╰╯╰─╯│╭─╮ ╭╮
3434
241 ┤ ╰╯ ╰─╯│╭─╮╭─╮ ╭╮
35-
228 ┤ ╰╯ ╰╯ │╭╯│╭─╮ ╭╮ ╭╮
36-
214 ┤ ╰╯ ╰╯ ╰─╯╰╮│╰╮╭╮ ╭╮ ╭╮ ╭╮
37-
201 ┤ ╰╯ ││╰─╯╰╮││ │╰╮╮ ╭╮ ╭
38-
188╰╯ ╰╯╰─╯ ╰─╯│╭╯╰╮╭─╮ │ │ ╭╮ ╭╮
39-
175 ┤ ╰╯ ╰╯ ╰─╯ ╰─╮╭╯╰╮│╰╮ ╭╮ ╭╮ ╭╮
40-
162 ┤ ╰╯ ╰╯ ╰─╯╰──╯╰╮│╰─
41-
149 ┤
35+
228 ┤ ╰╯ ╰╯ │╭╯╰╮╭╮ ╭╮ ╭╮
36+
215 ┤ ╰╯ ╰╯╰─╯╰─╯╰╮╭─╮ ╭╮
37+
202 ╰╯ │╭─╮ │╰╮╭╮ ╭─╮ ╭╮ ╭╮
38+
189╰╯ ╰─╯ ╰╯╰╮│ │ │╰╮╭─╮ │╰╮ ╭╮ ╭╮
39+
175 ┤ ╰╯ ╰─╯ ╰╯ ╰─╯ ╰─╯╰╮ │╰╮╭─╮ ╭─╮ ╭
40+
162 ┤ ╰─╯ ╰╯ │ │ │ │ ╰
41+
149 ┤ ╰─╯ ╰─
4242
replicas
4343
initial store values: [s1=300, s2=300, s3=300, s4=300, s5=300] (stddev=0.00, mean=300.00, sum=1500)
44-
last store values: [s1=346, s2=326, s3=342, s4=339, s5=153] (stddev=74.40, mean=301.20, sum=1506)
44+
last store values: [s1=347, s2=342, s3=338, s4=336, s5=152] (stddev=75.59, mean=303.00, sum=1515)
4545

4646
# Plot the % of disk storage capacity used. We should see s5 hovering right
4747
# around 92.5-95% (the storage capacity threshold value).
4848
plot stat=disk_fraction_used
4949
----
50-
1.06 ┤ ╭╮ ╭╮
51-
1.00 ┼─ ╭╮ ╭╮ ╮ ╭╮ ╭╮ │╰╮ ╭╮ ╭╮ ╭╮ ╭╮ │╰
52-
0.95│ ╭╮ ╭╮ ╭╮ ╭╮╭─╮╭─╮ ╭╮╭─╮╭─╮ ╭─╮╭─╮╭─╮││ │╰╮│ │╰╮╭╯│ │ ╰─╮╭╯╰╮│╰╮╭╯╰╮╭╯│ │ │
53-
0.89╰─╯╰─╯╰─╯╰─╯╰╯ ╰╯ ╰─╯╰╯ ╰╯ ╰─╯ ││ ╰╯ ╰╯╰─╯ ╰─╯╰─╯ ╰╯ ╰─││ ╰╯ ╰╯ ╯ ╰─╯ ╰
54-
0.83 ╰╯ ╰╯
50+
1.05 ┼╮ ╭╮ ╭╮ ╭╮
51+
0.99 ┤╰╭╮ ╭╮ ╭╮ ╭╮ ╭╮ ╭╮ ╭╮ ╭─╮ ╭╮ ╭╮ │╰╮ ││ ││ ╭╮ ╭─╮ ╭─
52+
0.94╰╮╭╮ ╭╮─╮╭─╮─╮╭─╮╭╯╰╮│╰╮│╰─╯╰╮│╰╮╭─╮ │╰╮││ │ │ │╰╮╭╯╰╮│ ╰─╯╰╮╭╯╰╮│╰╮│ │ │
53+
0.88╯╰─╯╰╯ ╰╯ ╰╯ ╰╯ ╰╰╯ ╰╯ ╰╯ ╰╯ │╭╯ ╰╯╰─╯ ╰─╯ ╰╯ ╯ ╰╯ ╰╯ ╰─╯ ╰─╯ ╰
54+
0.82 ┤ ╰╯
5555
0.77 ┤
56-
0.72
57-
0.66
56+
0.71
57+
0.65
5858
0.60 ┤
59-
0.55
59+
0.54
6060
0.49 ┤
6161
0.43 ┤
62-
0.38 ╭╮╮╭╭─╮╭───────────
63-
0.32 ┤ ╭╮╭╮╭╮─╭────────────────────╯╯╰╯ ╰
64-
0.26 ┤ ╭╭─╮╭──────────────────╯╰─╯
65-
0.20 ┼──────────────────╯╯╰╯╯
62+
0.37╭╮╭─╭───────────────
63+
0.32 ┤ ╭──╭───────────────────╯╰──╯╰─
64+
0.26 ┤ ╭╮╭╮╭─╮╭─────────────────╯╯─
65+
0.20 ┼────────────────╯╰╯╯╰╯╯
6666
disk_fraction_used
6767
initial store values: [s1=0.20, s2=0.20, s3=0.20, s4=0.20, s5=1.05] (stddev=0.34, mean=0.37, sum=2)
68-
last store values: [s1=0.42, s2=0.39, s3=0.41, s4=0.41, s5=0.93] (stddev=0.21, mean=0.51, sum=3)
68+
last store values: [s1=0.41, s2=0.41, s3=0.40, s4=0.40, s5=0.93] (stddev=0.21, mean=0.51, sum=3)

0 commit comments

Comments
 (0)