Commit 0ecb52b
committed
kgo: do not rotate the consumer session when pausing topics/partitions
Issue #489 asked to stop returning data after a partition was paused --
the original implementation of pausing kept returning any data that was
in flight or already buffered, and simply stopped fetching new data.
489 was dealt with by bumping the consumer session, which kills all
in flight fetch requests. This was easy, but can cause a lot of
connection churn if pausing and resuming a lot -- which is #585.
The new implementation allows fetches to complete, but strips data
from fetches based on what is paused at the moment the fetches are being
returned to the client. This does make polling paused fetches very
slightly slower (a map lookup per partition), but there's only so much
that's possible. If a partition is paused, we drop the data and do not
advance the internal offset. If a partition is not paused, we keep the
data and return it -- same as before.1 parent 6a961da commit 0ecb52b
File tree
4 files changed
+105
-38
lines changed- pkg/kgo
4 files changed
+105
-38
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
| 436 | + | |
| 437 | + | |
436 | 438 | | |
437 | 439 | | |
438 | 440 | | |
| |||
451 | 453 | | |
452 | 454 | | |
453 | 455 | | |
454 | | - | |
| 456 | + | |
455 | 457 | | |
456 | 458 | | |
457 | 459 | | |
458 | 460 | | |
459 | 461 | | |
460 | | - | |
| 462 | + | |
461 | 463 | | |
462 | 464 | | |
463 | 465 | | |
| |||
555 | 557 | | |
556 | 558 | | |
557 | 559 | | |
558 | | - | |
559 | | - | |
560 | | - | |
| 560 | + | |
561 | 561 | | |
562 | 562 | | |
563 | 563 | | |
| |||
569 | 569 | | |
570 | 570 | | |
571 | 571 | | |
572 | | - | |
573 | 572 | | |
574 | 573 | | |
575 | | - | |
576 | | - | |
577 | | - | |
578 | | - | |
579 | | - | |
580 | | - | |
581 | 574 | | |
582 | 575 | | |
583 | 576 | | |
| |||
587 | 580 | | |
588 | 581 | | |
589 | 582 | | |
590 | | - | |
591 | | - | |
592 | | - | |
| 583 | + | |
593 | 584 | | |
594 | 585 | | |
595 | 586 | | |
| |||
601 | 592 | | |
602 | 593 | | |
603 | 594 | | |
604 | | - | |
605 | 595 | | |
606 | 596 | | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
612 | | - | |
613 | 597 | | |
614 | 598 | | |
615 | 599 | | |
| |||
884 | 868 | | |
885 | 869 | | |
886 | 870 | | |
887 | | - | |
888 | | - | |
889 | | - | |
890 | | - | |
891 | 871 | | |
892 | 872 | | |
893 | 873 | | |
| |||
902 | 882 | | |
903 | 883 | | |
904 | 884 | | |
905 | | - | |
906 | | - | |
907 | 885 | | |
908 | 886 | | |
909 | 887 | | |
| |||
984 | 962 | | |
985 | 963 | | |
986 | 964 | | |
987 | | - | |
988 | | - | |
989 | 965 | | |
990 | 966 | | |
991 | 967 | | |
| |||
1032 | 1008 | | |
1033 | 1009 | | |
1034 | 1010 | | |
1035 | | - | |
| 1011 | + | |
1036 | 1012 | | |
1037 | 1013 | | |
1038 | 1014 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | | - | |
311 | | - | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
312 | 317 | | |
313 | 318 | | |
314 | 319 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | | - | |
348 | | - | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
349 | 405 | | |
350 | 406 | | |
351 | 407 | | |
| |||
359 | 415 | | |
360 | 416 | | |
361 | 417 | | |
362 | | - | |
| 418 | + | |
363 | 419 | | |
364 | 420 | | |
365 | 421 | | |
| |||
368 | 424 | | |
369 | 425 | | |
370 | 426 | | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
371 | 438 | | |
372 | 439 | | |
373 | 440 | | |
| |||
377 | 444 | | |
378 | 445 | | |
379 | 446 | | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
380 | 458 | | |
381 | 459 | | |
382 | 460 | | |
| |||
402 | 480 | | |
403 | 481 | | |
404 | 482 | | |
405 | | - | |
| 483 | + | |
406 | 484 | | |
407 | 485 | | |
408 | 486 | | |
| |||
422 | 500 | | |
423 | 501 | | |
424 | 502 | | |
425 | | - | |
| 503 | + | |
426 | 504 | | |
427 | 505 | | |
428 | 506 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
136 | 144 | | |
137 | 145 | | |
138 | 146 | | |
| |||
0 commit comments