Commit c0b60dd
[CELEBORN] Optimize RegisterShuffle for large partition counts
1. Replace partitionIdList (ArrayList<Integer>) transmission with a
single numPartitions integer via new PbRequestSlotsV2 message type,
eliminating ~10MB protobuf payload for 2M-partition shuffles.
Old PbRequestSlots is preserved for backward compatibility.
2. Optimize SlotsAllocator.roundRobin():
- Pre-compute per-worker usable slots into long[] arrays, replacing
O(N*W) haveUsableSlots() stream calls with O(1) array lookups.
- Replace LinkedList iterator + remove with index-based traversal,
eliminating O(N^2) element shifting overhead that dominated CPU
(90% in flame graph for 2M partitions).1 parent a56f69a commit c0b60dd
16 files changed
Lines changed: 286 additions & 140 deletions
File tree
- client/src/main/scala/org/apache/celeborn/client
- common/src/main
- proto
- scala/org/apache/celeborn/common/protocol/message
- master
- benchmarks
- src
- main
- java/org/apache/celeborn/service/deploy/master
- scala/org/apache/celeborn/service/deploy/master
- test/scala/org/apache/celeborn/service/deploy/master
- tests/spark-it/src/test/scala/org/apache/celeborn/tests/client
Lines changed: 1 addition & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
305 | 305 | | |
306 | 306 | | |
307 | 307 | | |
308 | | - | |
309 | | - | |
310 | 308 | | |
311 | 309 | | |
312 | | - | |
| 310 | + | |
313 | 311 | | |
314 | 312 | | |
315 | 313 | | |
| |||
Lines changed: 3 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
776 | 776 | | |
777 | 777 | | |
778 | 778 | | |
779 | | - | |
780 | | - | |
781 | | - | |
| 779 | + | |
782 | 780 | | |
783 | 781 | | |
784 | 782 | | |
| |||
1832 | 1830 | | |
1833 | 1831 | | |
1834 | 1832 | | |
1835 | | - | |
| 1833 | + | |
1836 | 1834 | | |
1837 | 1835 | | |
1838 | 1836 | | |
| |||
1845 | 1843 | | |
1846 | 1844 | | |
1847 | 1845 | | |
1848 | | - | |
| 1846 | + | |
1849 | 1847 | | |
1850 | 1848 | | |
1851 | 1849 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
120 | 122 | | |
121 | 123 | | |
122 | 124 | | |
| |||
325 | 327 | | |
326 | 328 | | |
327 | 329 | | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
328 | 346 | | |
329 | 347 | | |
330 | 348 | | |
| |||
Lines changed: 26 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
| 167 | + | |
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| |||
650 | 650 | | |
651 | 651 | | |
652 | 652 | | |
653 | | - | |
| 653 | + | |
654 | 654 | | |
655 | 655 | | |
656 | 656 | | |
| |||
661 | 661 | | |
662 | 662 | | |
663 | 663 | | |
664 | | - | |
| 664 | + | |
665 | 665 | | |
666 | 666 | | |
667 | | - | |
| 667 | + | |
668 | 668 | | |
669 | 669 | | |
670 | 670 | | |
| |||
677 | 677 | | |
678 | 678 | | |
679 | 679 | | |
680 | | - | |
| 680 | + | |
681 | 681 | | |
682 | 682 | | |
683 | 683 | | |
| |||
1151 | 1151 | | |
1152 | 1152 | | |
1153 | 1153 | | |
1154 | | - | |
| 1154 | + | |
1155 | 1155 | | |
1156 | 1156 | | |
1157 | 1157 | | |
| |||
1163 | 1163 | | |
1164 | 1164 | | |
1165 | 1165 | | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
1166 | 1186 | | |
1167 | 1187 | | |
1168 | 1188 | | |
| |||
Lines changed: 55 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
Lines changed: 39 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
517 | 517 | | |
518 | 518 | | |
519 | 519 | | |
520 | | - | |
521 | 520 | | |
522 | 521 | | |
523 | 522 | | |
| |||
533 | 532 | | |
534 | 533 | | |
535 | 534 | | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | | - | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
540 | 547 | | |
541 | | - | |
| 548 | + | |
542 | 549 | | |
543 | 550 | | |
544 | | - | |
| 551 | + | |
545 | 552 | | |
546 | | - | |
| 553 | + | |
547 | 554 | | |
548 | | - | |
| 555 | + | |
549 | 556 | | |
550 | 557 | | |
551 | 558 | | |
| |||
558 | 565 | | |
559 | 566 | | |
560 | 567 | | |
| 568 | + | |
561 | 569 | | |
562 | 570 | | |
563 | 571 | | |
| |||
576 | 584 | | |
577 | 585 | | |
578 | 586 | | |
579 | | - | |
| 587 | + | |
580 | 588 | | |
581 | | - | |
| 589 | + | |
582 | 590 | | |
583 | 591 | | |
584 | 592 | | |
| |||
597 | 605 | | |
598 | 606 | | |
599 | 607 | | |
| 608 | + | |
600 | 609 | | |
601 | 610 | | |
602 | 611 | | |
| |||
642 | 651 | | |
643 | 652 | | |
644 | 653 | | |
645 | | - | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
646 | 658 | | |
647 | | - | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
648 | 674 | | |
649 | 675 | | |
650 | 676 | | |
| |||
Lines changed: 10 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
930 | 930 | | |
931 | 931 | | |
932 | 932 | | |
933 | | - | |
| 933 | + | |
934 | 934 | | |
935 | 935 | | |
936 | 936 | | |
| |||
966 | 966 | | |
967 | 967 | | |
968 | 968 | | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
969 | 976 | | |
970 | 977 | | |
971 | 978 | | |
972 | 979 | | |
973 | 980 | | |
974 | 981 | | |
975 | 982 | | |
976 | | - | |
| 983 | + | |
977 | 984 | | |
978 | 985 | | |
979 | 986 | | |
| |||
986 | 993 | | |
987 | 994 | | |
988 | 995 | | |
989 | | - | |
| 996 | + | |
990 | 997 | | |
991 | 998 | | |
992 | 999 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
180 | | - | |
| 180 | + | |
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| |||
0 commit comments