Commit 3d6d58a
committed
refactor(consensuscommit): decouple CoordinatorCommitHandler from ParticipantCommitHandler
CoordinatorCommitHandler held a ParticipantCommitHandler purely to roll back
the transaction's prepared records when a commitState putState race resolved
to ABORTED/absent. That made the Coordinator-side (state-table) handler depend
on the participant-side (data-record) handler, which blocks reusing the two
handlers independently (e.g. from callers other than CommitHandler).
Move that responsibility to the orchestrator: handleCommitConflict now only
reports the conflict (throws CommitConflictException, or returns normally when
the state is already COMMITTED), and CommitHandler.commit() catches it and
rolls back the records via its own ParticipantCommitHandler. No behavioral
change.
- Drop the ParticipantCommitHandler dependency from CoordinatorCommitHandler
and CoordinatorCommitHandlerWithGroupCommit.
- Order the two handlers Coordinator-before-Participant in CommitHandler's
fields/constructors now that they are independent.
- Drop the "one of the two specialized handlers that CommitHandler delegates
to" framing from the handler Javadocs; describe each handler by its own
responsibility so it reads correctly for non-CommitHandler callers.1 parent 29e3cdd commit 3d6d58a
11 files changed
Lines changed: 158 additions & 96 deletions
File tree
- core/src
- main/java/com/scalar/db/transaction/consensuscommit
- test/java/com/scalar/db/transaction/consensuscommit
Lines changed: 18 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | 52 | | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
| 69 | + | |
68 | 70 | | |
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
72 | 74 | | |
73 | 75 | | |
74 | 76 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | 77 | | |
79 | 78 | | |
80 | 79 | | |
| |||
84 | 83 | | |
85 | 84 | | |
86 | 85 | | |
87 | | - | |
88 | | - | |
| 86 | + | |
| 87 | + | |
89 | 88 | | |
90 | | - | |
91 | 89 | | |
| 90 | + | |
92 | 91 | | |
93 | 92 | | |
94 | 93 | | |
| |||
208 | 207 | | |
209 | 208 | | |
210 | 209 | | |
211 | | - | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
212 | 222 | | |
213 | 223 | | |
214 | 224 | | |
| |||
Lines changed: 9 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
60 | 59 | | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
| 60 | + | |
| 61 | + | |
65 | 62 | | |
66 | 63 | | |
67 | | - | |
68 | | - | |
| 64 | + | |
| 65 | + | |
69 | 66 | | |
70 | 67 | | |
71 | 68 | | |
72 | | - | |
73 | | - | |
74 | | - | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
75 | 72 | | |
76 | 73 | | |
77 | 74 | | |
| |||
Lines changed: 9 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
30 | 26 | | |
31 | 27 | | |
32 | 28 | | |
33 | 29 | | |
34 | 30 | | |
35 | 31 | | |
36 | 32 | | |
37 | | - | |
38 | 33 | | |
39 | 34 | | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 35 | + | |
44 | 36 | | |
45 | 37 | | |
46 | | - | |
47 | 38 | | |
48 | 39 | | |
49 | 40 | | |
| |||
88 | 79 | | |
89 | 80 | | |
90 | 81 | | |
91 | | - | |
92 | 82 | | |
93 | 83 | | |
94 | 84 | | |
| |||
111 | 101 | | |
112 | 102 | | |
113 | 103 | | |
114 | | - | |
115 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
116 | 107 | | |
117 | 108 | | |
118 | 109 | | |
| |||
139 | 130 | | |
140 | 131 | | |
141 | 132 | | |
142 | | - | |
143 | 133 | | |
144 | 134 | | |
145 | 135 | | |
| |||
Lines changed: 1 addition & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | 25 | | |
29 | 26 | | |
30 | 27 | | |
| |||
39 | 36 | | |
40 | 37 | | |
41 | 38 | | |
42 | | - | |
43 | 39 | | |
44 | | - | |
| 40 | + | |
45 | 41 | | |
46 | 42 | | |
47 | 43 | | |
| |||
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | 36 | | |
40 | 37 | | |
41 | 38 | | |
| |||
Lines changed: 7 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
237 | | - | |
238 | | - | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
239 | 244 | | |
240 | 245 | | |
241 | 246 | | |
| |||
Lines changed: 25 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | | - | |
| 71 | + | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
306 | 306 | | |
307 | 307 | | |
308 | 308 | | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
309 | 332 | | |
310 | 333 | | |
311 | 334 | | |
| |||
core/src/test/java/com/scalar/db/transaction/consensuscommit/CommitHandlerWithGroupCommitTest.java
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
| 49 | + | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| |||
Lines changed: 21 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
63 | 62 | | |
64 | 63 | | |
65 | 64 | | |
66 | | - | |
67 | | - | |
| 65 | + | |
68 | 66 | | |
69 | 67 | | |
70 | 68 | | |
| |||
127 | 125 | | |
128 | 126 | | |
129 | 127 | | |
130 | | - | |
131 | | - | |
132 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
153 | | - | |
154 | 152 | | |
155 | 153 | | |
156 | 154 | | |
| |||
175 | 173 | | |
176 | 174 | | |
177 | 175 | | |
178 | | - | |
| 176 | + | |
179 | 177 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | 178 | | |
184 | 179 | | |
185 | 180 | | |
186 | | - | |
187 | | - | |
188 | | - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
189 | 186 | | |
190 | 187 | | |
191 | 188 | | |
| |||
200 | 197 | | |
201 | 198 | | |
202 | 199 | | |
203 | | - | |
204 | | - | |
205 | 200 | | |
206 | 201 | | |
207 | 202 | | |
| |||
435 | 430 | | |
436 | 431 | | |
437 | 432 | | |
438 | | - | |
439 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
440 | 437 | | |
441 | 438 | | |
442 | 439 | | |
| |||
452 | 449 | | |
453 | 450 | | |
454 | 451 | | |
455 | | - | |
456 | 452 | | |
457 | 453 | | |
458 | 454 | | |
| |||
467 | 463 | | |
468 | 464 | | |
469 | 465 | | |
470 | | - | |
| 466 | + | |
471 | 467 | | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | 468 | | |
476 | 469 | | |
477 | 470 | | |
478 | | - | |
479 | | - | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
480 | 475 | | |
481 | 476 | | |
482 | 477 | | |
| |||
487 | 482 | | |
488 | 483 | | |
489 | 484 | | |
490 | | - | |
491 | 485 | | |
492 | 486 | | |
493 | 487 | | |
| |||
0 commit comments