@@ -12,7 +12,7 @@ gen_ranges ranges=7 placement_type=skewed
12
12
----
13
13
14
14
# Create a load generator, where there are 7k ops/s and the access follows a
15
- # zipfian distribution on the keyspace.
15
+ # uniform distribution on the keyspace.
16
16
gen_load rate=7000 rw_ratio=0.95 access_skew=false min_block=128 max_block=256
17
17
----
18
18
@@ -30,7 +30,7 @@ assertion stat=qps type=steady ticks=6 upper_bound=0.05
30
30
----
31
31
32
32
# The generators are then called and 2 simulation runs, named samples are
33
- # created and evaluated. Each sample has a fixed duration of 5 minutes.
33
+ # created and evaluated. Each sample has a fixed duration of 3 minutes.
34
34
# Following the evaluation, the samples are checked individually against the
35
35
# existing assertions, added above. If any assertion fails, the reason is
36
36
# printed. If no assertions fail, then OK is printed.
@@ -65,15 +65,41 @@ plot stat=qps sample=2
65
65
initial store values: [s1= 0, s2= 0, s3= 0, s4= 0, s5= 0, s6= 0, s7= 0] (stddev=0.00, mean=0.00, sum=0)
66
66
last store values: [s1= 996, s2= 998, s3= 996, s4= 1000, s5= 1000, s6= 1012, s7= 1001] (stddev=5.07, mean=1000.43, sum=7003)
67
67
68
+ plot stat=replica_moves sample=2
69
+ ----
70
+ 5.00 ┤ ╭────────────────────────────────────────────────────────────────────────────
71
+ 4.67 ┤ │
72
+ 4.33 ┤ │
73
+ 4.00 ┤ │
74
+ 3.67 ┤ │
75
+ 3.33 ┤ │
76
+ 3.00 ┤ ╭╯
77
+ 2.67 ┤ │
78
+ 2.33 ┤ │
79
+ 2.00 ┤ │
80
+ 1.67 ┤ │
81
+ 1.33 ┤ │
82
+ 1.00 ┤╭╯╭────────────────────────────────────────────────────────────────────────────
83
+ 0.67 ┤│ │
84
+ 0.33 ┤│ │
85
+ 0.00 ┼───────────────────────────────────────────────────────────────────────────────
86
+ replica_moves
87
+ initial store values: [s1= 0, s2= 0, s3= 0, s4= 0, s5= 0, s6= 0, s7= 0] (stddev=0.00, mean=0.00, sum=0)
88
+ last store values: [s1= 5, s2= 0, s3= 1, s4= 0, s5= 0, s6= 0, s7= 0] (stddev=1.73, mean=0.86, sum=6)
89
+
68
90
# The cluster settings and simulation variables can be modified to examine how
69
91
# allocation behaves during uncommon scenarios. Update the gossip delay to be
70
92
# unreasonably long (default 500ms).
71
93
setting gossip_delay=20s
72
94
----
73
95
74
96
# Evaluate with the updated gossip setting but otherwise identical generators
75
- # and seed. Here we see that neither the balance assertion nor steady state
76
- # assertion is reached due to how the system reacts to the long gossip delays.
97
+ # and seed. Here we see that the balance assertion and steady state assertion
98
+ # are reached, but after more fluctuation and a longer duration of 5m, due to
99
+ # how the system reacts to the long gossip delays.
100
+ #
101
+ # TODO: Adding StoreGossip.RecordNewPerSecondStats() to asim gossip causes
102
+ # thrashing on the fourth sample here.
77
103
eval duration=5m samples=2 seed=42
78
104
----
79
105
failed assertion sample 2
@@ -85,54 +111,54 @@ failed assertion sample 2
85
111
max/mean=2.00 tick=4
86
112
max/mean=2.00 tick=5
87
113
88
- # To investigate further, plot the QPS output again. The plotted output matches
89
- # expectations given the assertion failed, The system exhibits thrashing as
90
- # rebalancing occurs frequently but without actually achieving convergence.
91
- plot stat=qps sample=3
114
+ # To investigate further, plot the QPS output again. The plotted output
115
+ # exhibits thrashing as rebalancing occurs frequently with eventual
116
+ # convergence.
117
+ plot stat=qps sample=4
92
118
----
93
119
7000 ┤ ╭───╮
94
120
6533 ┤ │ │
95
- 6067 ┤ │ │
96
- 5600 ┤ │ ╰╮
121
+ 6067 ┤ │ ╰╮
122
+ 5600 ┤ │ │
97
123
5133 ┤ │ │
98
124
4667 ┤ │ │
99
- 4200 ┤ │ ╰ ╮
100
- 3733 ┤ │ │
101
- 3267 ┤ │ │
102
- 2800 ┤ │ │ ╭─ ─────╮
103
- 2333 ┤ │ │ │ │
104
- 1867 ┤ │ ╰╭╯ ─────╮│╭─ ────────────╮
105
- 1400 ┤ │ ││ ││ │ ╰╮
106
- 933 ┤ │ ╭╭─ ╭────────────────────────────────────── ───────────────────────────────
107
- 467 ┤ │ ││││ ╰╮ │ │
108
- 0 ┼─────────╯ ───────╯───────────────╯
125
+ 4200 ┤ │ │ ╭───╮ ╭───── ╮
126
+ 3733 ┤ │ │ │ │ │ │
127
+ 3267 ┤ │ │ │ │ │ │
128
+ 2800 ┤ │ ╰╮╭╯ ╰─╮╭╯ ╰──╮╭────╮ ╭───╮ ╭────╮ ╭ ─────╮
129
+ 2333 ┤ │ ││ ╰╮ ││ │ │ │ │ │ │ │
130
+ 1867 ┤ │ ╭╭ ─────╮╭│ ╭─╯ ───╮╰╭ ─────────────╮╭╯ ╰╮╭╯ ╰╮ │ │╭╭──────
131
+ 1400 ┤ │ ││ │││ │ ╰╮│ │ │ │ │││ ││ ╰╮│ │││
132
+ 933 ┤ │ ╭╭╭────────╭ ──────────╭ ────╯ ─────────────╰ ───────────────────────────────
133
+ 467 ┤ │ │││ │││ │ │ ││ ││ │ │ │ │ ╭│ │
134
+ 0 ┼──────────────────────────── ╯──────────────────────────────────────────────────
109
135
qps
110
136
initial store values: [s1= 0, s2= 0, s3= 0, s4= 0, s5= 0, s6= 0, s7= 0] (stddev=0.00, mean=0.00, sum=0)
111
- last store values: [s1= 1002 , s2= 994 , s3= 997 , s4= 1000 , s5= 998 , s6= 1002 , s7= 1003 ] (stddev=3.02 , mean=999.43 , sum=6996 )
137
+ last store values: [s1= 999 , s2= 0 , s3= 2002 , s4= 1998 , s5= 0 , s6= 1003 , s7= 999 ] (stddev=755.93 , mean=1000.14 , sum=7001 )
112
138
113
139
# Plot the replica movements for the same sample, we should see a steadily
114
140
# increasing counter for each store; indicating that rebalancing activity is
115
- # persistent.
116
- plot stat=replica_moves sample=3
141
+ # persistent, until convergence .
142
+ plot stat=replica_moves sample=4
117
143
----
118
- 11 .00 ┤ ╭──────────────────────────────────────────────────────────────── ──────
119
- 10.27 ┤ ╭ ╯
120
- 9.53 ┤ │
121
- 8.80 ┤ │
122
- 8.07 ┤ │
123
- 7.33 ┤ │
124
- 6.60 ┤ │
125
- 5.87 ┤ ╭ ╯ ╭──────────────────────────────────────────────────────────────
126
- 5.13 ┤ │ │
127
- 4.40 ┤ │ │
128
- 3.67 ┤ │ ╭ ╯
129
- 2.93 ┤ │ │ ╭─────────────────────────────── ───────────────────────────────
130
- 2.20 ┤ ╭╯ ╭ ─────╯╯
131
- 1.47 ┤ │ │ │
132
- 0.73 ┤ │╭╭─╯ ───── ╭───────────────────────────────────────────────────────────────
133
- 0.00 ┼───────────────╯ ───────────────────────────────────────────────────────────────
144
+ 24 .00 ┤ ╭ ──────
145
+ 22.40 ┤ ╭───────────────── ╯
146
+ 20.80 ┤ ╭──────────────╯
147
+ 19.20 ┤ ╭───────╯
148
+ 17.60 ┤ ╭────╯
149
+ 16.00 ┤ ╭─╯ ╭────────
150
+ 14.40 ┤ ╭╯ ╭─────────────────╯
151
+ 12.80 ┤ ╭─ ╯ ╭────────────╯
152
+ 11.20 ┤ ╭─────╯ ╭───╯ ╭───────────────
153
+ 9.60 ┤ ╭───────╯ ╭───╯ ╭─────────────────
154
+ 8.00 ┤ │ ╭───────╯ ╭─────╭───────╯──────── ╯
155
+ 6.40 ┤ ╭╯ ╭────────╯ ╭ ──────╭ ───────╭ ───────────────────────────────
156
+ 4.80 ┤ │ ╭╭ ────────╭───────╭───────╯╭──────╯───────────────────────────────
157
+ 3.20 ┤ ╭╯ ╭────╭╯ ╭─╭───────╯ ╭───╭╯
158
+ 1.60 ┤ │╭╭─────╭──╭ ──────╯ ───────╭ ───────╯
159
+ 0.00 ┼───────────────────────────────╯
134
160
replica_moves
135
161
initial store values: [s1= 0, s2= 0, s3= 0, s4= 0, s5= 0, s6= 0, s7= 0] (stddev=0.00, mean=0.00, sum=0)
136
- last store values: [s1= 11 , s2= 1 , s3= 3 , s4= 6 , s5= 0 , s6= 0 , s7= 1 ] (stddev=3.76 , mean=3.14 , sum=22 )
162
+ last store values: [s1= 24 , s2= 11 , s3= 16 , s4= 11 , s5= 5 , s6= 10 , s7= 6 ] (stddev=5.99 , mean=11.86 , sum=83 )
137
163
138
164
# vim:ft=sh
0 commit comments