Commit 4d07c51
committed
Make stream snapshots asynchronous
The monitorStream function can block for a long time when creating and
installing a snapshot of a stream's state. This can lead to increased
tail latency.
This commit extends the RaftNode interface with a new InstallSnapshotAsync
method. This method performs snapshot writing and WAL compaction in a
in a separate goroutine, making the process non-blocking. The existing
InstallSnapshot method is now a synchronous wrapper around the new
asynchronous implementation.
Signed-off-by: Daniele Sciascia <[email protected]>1 parent aa1b2fc commit 4d07c51
3 files changed
+189
-35
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2554 | 2554 | | |
2555 | 2555 | | |
2556 | 2556 | | |
2557 | | - | |
2558 | | - | |
2559 | | - | |
| 2557 | + | |
| 2558 | + | |
| 2559 | + | |
| 2560 | + | |
| 2561 | + | |
| 2562 | + | |
| 2563 | + | |
| 2564 | + | |
| 2565 | + | |
| 2566 | + | |
| 2567 | + | |
| 2568 | + | |
| 2569 | + | |
| 2570 | + | |
2560 | 2571 | | |
2561 | 2572 | | |
2562 | 2573 | | |
| |||
2569 | 2580 | | |
2570 | 2581 | | |
2571 | 2582 | | |
2572 | | - | |
| 2583 | + | |
2573 | 2584 | | |
2574 | 2585 | | |
2575 | | - | |
2576 | | - | |
2577 | | - | |
2578 | | - | |
2579 | | - | |
2580 | | - | |
| 2586 | + | |
| 2587 | + | |
| 2588 | + | |
| 2589 | + | |
| 2590 | + | |
| 2591 | + | |
| 2592 | + | |
| 2593 | + | |
| 2594 | + | |
| 2595 | + | |
| 2596 | + | |
| 2597 | + | |
| 2598 | + | |
2581 | 2599 | | |
| 2600 | + | |
2582 | 2601 | | |
2583 | 2602 | | |
| 2603 | + | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
2584 | 2633 | | |
2585 | 2634 | | |
2586 | 2635 | | |
| |||
2652 | 2701 | | |
2653 | 2702 | | |
2654 | 2703 | | |
| 2704 | + | |
| 2705 | + | |
| 2706 | + | |
2655 | 2707 | | |
2656 | 2708 | | |
2657 | 2709 | | |
| |||
2761 | 2813 | | |
2762 | 2814 | | |
2763 | 2815 | | |
2764 | | - | |
| 2816 | + | |
2765 | 2817 | | |
2766 | 2818 | | |
2767 | 2819 | | |
| |||
2856 | 2908 | | |
2857 | 2909 | | |
2858 | 2910 | | |
2859 | | - | |
| 2911 | + | |
2860 | 2912 | | |
2861 | 2913 | | |
2862 | 2914 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
229 | 230 | | |
230 | 231 | | |
231 | 232 | | |
| 233 | + | |
232 | 234 | | |
233 | 235 | | |
234 | 236 | | |
| |||
306 | 308 | | |
307 | 309 | | |
308 | 310 | | |
| 311 | + | |
309 | 312 | | |
310 | 313 | | |
311 | 314 | | |
| |||
1242 | 1245 | | |
1243 | 1246 | | |
1244 | 1247 | | |
1245 | | - | |
1246 | | - | |
1247 | | - | |
1248 | | - | |
1249 | | - | |
1250 | | - | |
1251 | | - | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
1252 | 1254 | | |
1253 | | - | |
1254 | | - | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
1255 | 1260 | | |
1256 | 1261 | | |
1257 | | - | |
1258 | | - | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
1259 | 1265 | | |
1260 | 1266 | | |
1261 | | - | |
1262 | | - | |
| 1267 | + | |
| 1268 | + | |
1263 | 1269 | | |
1264 | | - | |
| 1270 | + | |
| 1271 | + | |
1265 | 1272 | | |
1266 | 1273 | | |
1267 | 1274 | | |
1268 | 1275 | | |
1269 | | - | |
| 1276 | + | |
| 1277 | + | |
1270 | 1278 | | |
1271 | 1279 | | |
1272 | | - | |
1273 | | - | |
1274 | | - | |
1275 | | - | |
| 1280 | + | |
| 1281 | + | |
1276 | 1282 | | |
1277 | | - | |
| 1283 | + | |
| 1284 | + | |
1278 | 1285 | | |
1279 | 1286 | | |
1280 | | - | |
| 1287 | + | |
1281 | 1288 | | |
1282 | | - | |
1283 | | - | |
| 1289 | + | |
| 1290 | + | |
1284 | 1291 | | |
1285 | 1292 | | |
1286 | 1293 | | |
1287 | 1294 | | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
1288 | 1352 | | |
1289 | 1353 | | |
1290 | 1354 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4110 | 4110 | | |
4111 | 4111 | | |
4112 | 4112 | | |
| 4113 | + | |
| 4114 | + | |
| 4115 | + | |
| 4116 | + | |
| 4117 | + | |
| 4118 | + | |
| 4119 | + | |
| 4120 | + | |
| 4121 | + | |
| 4122 | + | |
| 4123 | + | |
| 4124 | + | |
| 4125 | + | |
| 4126 | + | |
| 4127 | + | |
| 4128 | + | |
| 4129 | + | |
| 4130 | + | |
| 4131 | + | |
| 4132 | + | |
| 4133 | + | |
| 4134 | + | |
| 4135 | + | |
| 4136 | + | |
| 4137 | + | |
| 4138 | + | |
| 4139 | + | |
| 4140 | + | |
| 4141 | + | |
| 4142 | + | |
| 4143 | + | |
| 4144 | + | |
| 4145 | + | |
| 4146 | + | |
| 4147 | + | |
| 4148 | + | |
| 4149 | + | |
| 4150 | + | |
0 commit comments