Commit 51b02f1
[Parquet] perf: preallocate capacity for ArrayReaderBuilder (#9093)
# Which issue does this PR close?
- Closes #9059.
# Rationale for this change
reduce allocation cost mentioned in
#9059 from experiment:
Pre-allocation overhead may offset the savings from avoiding incremental
growth
# What changes are included in this PR?
- add with_capacity method to ValuesBuffer trait, and remove defaults to
enforce the capacity hint is required for ArrayReaderBuilder.
- The capacity hint will be passed down to GenericRecordReader to
preallocate the buffer.
# Are there any user-facing changes?
yes ArrayReaders needs an extra capacity variable to indicate the
preferred batch size and we will provision buffer with this capacity.
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>1 parent 89b1497 commit 51b02f1
16 files changed
Lines changed: 381 additions & 167 deletions
File tree
- parquet
- benches
- src/arrow
- array_reader
- arrow_reader
- buffer
- push_decoder/reader_builder
- record_reader
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
709 | 710 | | |
710 | 711 | | |
711 | 712 | | |
712 | | - | |
713 | | - | |
714 | | - | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
715 | 720 | | |
716 | 721 | | |
717 | 722 | | |
718 | | - | |
719 | | - | |
720 | | - | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
721 | 730 | | |
722 | 731 | | |
723 | 732 | | |
| |||
730 | 739 | | |
731 | 740 | | |
732 | 741 | | |
733 | | - | |
734 | | - | |
735 | | - | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
736 | 749 | | |
737 | 750 | | |
738 | 751 | | |
| |||
743 | 756 | | |
744 | 757 | | |
745 | 758 | | |
746 | | - | |
747 | | - | |
748 | | - | |
749 | | - | |
750 | | - | |
751 | | - | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
752 | 773 | | |
753 | 774 | | |
754 | 775 | | |
| |||
757 | 778 | | |
758 | 779 | | |
759 | 780 | | |
760 | | - | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
761 | 788 | | |
762 | 789 | | |
763 | 790 | | |
764 | 791 | | |
765 | 792 | | |
766 | 793 | | |
767 | | - | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
768 | 801 | | |
769 | 802 | | |
770 | 803 | | |
771 | 804 | | |
772 | 805 | | |
773 | 806 | | |
774 | | - | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
775 | 814 | | |
776 | 815 | | |
777 | 816 | | |
778 | 817 | | |
779 | 818 | | |
780 | 819 | | |
781 | | - | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
782 | 827 | | |
783 | 828 | | |
784 | 829 | | |
| |||
788 | 833 | | |
789 | 834 | | |
790 | 835 | | |
791 | | - | |
792 | | - | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
793 | 843 | | |
794 | 844 | | |
795 | 845 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| |||
96 | 97 | | |
97 | 98 | | |
98 | 99 | | |
| 100 | + | |
| 101 | + | |
99 | 102 | | |
100 | 103 | | |
101 | 104 | | |
| 105 | + | |
102 | 106 | | |
103 | 107 | | |
104 | 108 | | |
105 | 109 | | |
106 | 110 | | |
107 | 111 | | |
| 112 | + | |
108 | 113 | | |
109 | 114 | | |
110 | 115 | | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
111 | 124 | | |
112 | 125 | | |
113 | 126 | | |
| |||
414 | 427 | | |
415 | 428 | | |
416 | 429 | | |
| 430 | + | |
417 | 431 | | |
418 | 432 | | |
419 | 433 | | |
420 | 434 | | |
421 | 435 | | |
422 | 436 | | |
| 437 | + | |
423 | 438 | | |
424 | 439 | | |
425 | 440 | | |
426 | 441 | | |
427 | 442 | | |
428 | 443 | | |
| 444 | + | |
429 | 445 | | |
430 | 446 | | |
431 | 447 | | |
432 | 448 | | |
433 | 449 | | |
434 | 450 | | |
435 | 451 | | |
| 452 | + | |
436 | 453 | | |
437 | 454 | | |
438 | 455 | | |
439 | 456 | | |
440 | 457 | | |
| 458 | + | |
441 | 459 | | |
442 | 460 | | |
443 | 461 | | |
444 | 462 | | |
445 | 463 | | |
| 464 | + | |
446 | 465 | | |
447 | 466 | | |
448 | 467 | | |
449 | 468 | | |
450 | 469 | | |
| 470 | + | |
451 | 471 | | |
452 | 472 | | |
453 | | - | |
454 | | - | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
455 | 487 | | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | 488 | | |
461 | 489 | | |
462 | | - | |
463 | | - | |
464 | | - | |
465 | | - | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
466 | 502 | | |
467 | 503 | | |
468 | 504 | | |
| |||
533 | 569 | | |
534 | 570 | | |
535 | 571 | | |
| 572 | + | |
536 | 573 | | |
537 | 574 | | |
538 | 575 | | |
| |||
566 | 603 | | |
567 | 604 | | |
568 | 605 | | |
| 606 | + | |
569 | 607 | | |
570 | 608 | | |
571 | 609 | | |
| |||
0 commit comments