Commit 93ede64
committed
(improvement) Further optimize load-balancing query plans and tests
Use index-based loops and excluded fast-paths in DC/Rack-aware policies
to speed up TokenAware replica selection and exclusion handling.
Snapshot `self._remote_hosts` to local variables in make_query_plan
and make_query_plan_with_exclusion for GIL-free Python 3.13+ safety.
Removed hot-path try/except and avoid eager list conversion.
Updated TokenAware tests/mocks for token_map and deterministic ordering.
Benchmark (100K queries, 45-node/5-DC topology, Python 3.14, median of 5 runs):
Policy | Kops/s | vs master | delta | Mem KB
-----------------------------------------------------------------
DCAware | 201 | +90% | +26% | 1.5
RackAware | 163 | +140% | +27% | 2.0
TokenAware(DCAware) | 96 | +433% | +19% | 1.7
TokenAware(RackAware) | 88 | +418% | +38% | 2.2
Default(DCAware) | 137 | +51% | -31% | 1.6
HostFilter(DCAware) | 65 | +23% | +16% | 1.7
Index-based loops add +19-38% to TokenAware, +26-27% to DC/RackAware.
Cumulative: DCAware ~2x, RackAware ~2.4x, TokenAware ~5x vs master.
Signed-off-by: Yaniv Kaul <yaniv.kaul@scylladb.com>1 parent 14cfa3c commit 93ede64
2 files changed
Lines changed: 126 additions & 41 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
323 | | - | |
324 | | - | |
325 | | - | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
326 | 328 | | |
327 | | - | |
| 329 | + | |
| 330 | + | |
328 | 331 | | |
329 | 332 | | |
330 | 333 | | |
| |||
336 | 339 | | |
337 | 340 | | |
338 | 341 | | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
344 | 363 | | |
345 | | - | |
346 | | - | |
| 364 | + | |
| 365 | + | |
347 | 366 | | |
348 | 367 | | |
349 | 368 | | |
| |||
486 | 505 | | |
487 | 506 | | |
488 | 507 | | |
489 | | - | |
490 | | - | |
| 508 | + | |
| 509 | + | |
491 | 510 | | |
492 | 511 | | |
493 | 512 | | |
494 | 513 | | |
495 | 514 | | |
496 | | - | |
497 | | - | |
| 515 | + | |
| 516 | + | |
498 | 517 | | |
499 | | - | |
| 518 | + | |
| 519 | + | |
500 | 520 | | |
501 | 521 | | |
502 | 522 | | |
| |||
507 | 527 | | |
508 | 528 | | |
509 | 529 | | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
510 | 551 | | |
511 | 552 | | |
512 | | - | |
513 | | - | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
514 | 556 | | |
515 | 557 | | |
516 | 558 | | |
517 | 559 | | |
518 | 560 | | |
519 | 561 | | |
520 | 562 | | |
521 | | - | |
522 | | - | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
523 | 566 | | |
524 | 567 | | |
525 | 568 | | |
526 | | - | |
527 | | - | |
| 569 | + | |
| 570 | + | |
528 | 571 | | |
529 | 572 | | |
530 | 573 | | |
| |||
644 | 687 | | |
645 | 688 | | |
646 | 689 | | |
647 | | - | |
| 690 | + | |
648 | 691 | | |
649 | 692 | | |
650 | 693 | | |
| |||
660 | 703 | | |
661 | 704 | | |
662 | 705 | | |
| 706 | + | |
663 | 707 | | |
664 | 708 | | |
665 | 709 | | |
| |||
678 | 722 | | |
679 | 723 | | |
680 | 724 | | |
681 | | - | |
| 725 | + | |
| 726 | + | |
682 | 727 | | |
683 | | - | |
684 | | - | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
685 | 731 | | |
686 | | - | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
687 | 739 | | |
688 | 740 | | |
689 | | - | |
690 | | - | |
691 | | - | |
692 | | - | |
693 | | - | |
694 | | - | |
695 | | - | |
696 | | - | |
| 741 | + | |
697 | 742 | | |
698 | 743 | | |
699 | 744 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
749 | 749 | | |
750 | 750 | | |
751 | 751 | | |
| 752 | + | |
| 753 | + | |
752 | 754 | | |
753 | 755 | | |
754 | 756 | | |
| |||
761 | 763 | | |
762 | 764 | | |
763 | 765 | | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
764 | 769 | | |
765 | | - | |
| 770 | + | |
766 | 771 | | |
767 | 772 | | |
768 | 773 | | |
| |||
787 | 792 | | |
788 | 793 | | |
789 | 794 | | |
| 795 | + | |
| 796 | + | |
790 | 797 | | |
791 | 798 | | |
792 | 799 | | |
| |||
807 | 814 | | |
808 | 815 | | |
809 | 816 | | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
810 | 820 | | |
811 | 821 | | |
812 | | - | |
| 822 | + | |
| 823 | + | |
813 | 824 | | |
814 | 825 | | |
815 | 826 | | |
| |||
843 | 854 | | |
844 | 855 | | |
845 | 856 | | |
| 857 | + | |
| 858 | + | |
846 | 859 | | |
847 | 860 | | |
848 | 861 | | |
| |||
867 | 880 | | |
868 | 881 | | |
869 | 882 | | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
870 | 886 | | |
871 | 887 | | |
872 | | - | |
| 888 | + | |
| 889 | + | |
873 | 890 | | |
874 | 891 | | |
875 | 892 | | |
| |||
1017 | 1034 | | |
1018 | 1035 | | |
1019 | 1036 | | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
1020 | 1042 | | |
1021 | 1043 | | |
1022 | 1044 | | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
1023 | 1048 | | |
1024 | 1049 | | |
1025 | | - | |
| 1050 | + | |
1026 | 1051 | | |
1027 | 1052 | | |
1028 | 1053 | | |
| |||
1141 | 1166 | | |
1142 | 1167 | | |
1143 | 1168 | | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
1144 | 1174 | | |
1145 | 1175 | | |
1146 | 1176 | | |
| |||
1158 | 1188 | | |
1159 | 1189 | | |
1160 | 1190 | | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
1161 | 1196 | | |
1162 | 1197 | | |
1163 | 1198 | | |
| |||
2075 | 2110 | | |
2076 | 2111 | | |
2077 | 2112 | | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
| 2116 | + | |
| 2117 | + | |
2078 | 2118 | | |
2079 | | - | |
| 2119 | + | |
2080 | 2120 | | |
2081 | 2121 | | |
2082 | 2122 | | |
| |||
0 commit comments