druid/extensions-core
Gian Merlino 3d45f9829c
Use the whole frame when writing rows. (#17094)
* Use the whole frame when writing rows.

This patch makes the following adjustments to enable writing larger
single rows to frames:

1) RowBasedFrameWriter: Max out allocation size on the final doubling.
   i.e., if the final allocation "naturally" would be 1 MiB but the
   max frame size is 900 KiB, use 900 KiB rather than failing the 1 MiB
   allocation.

2) AppendableMemory: In reserveAdditional, release the last block if it
   is empty. This eliminates waste when a frame writer uses a
   successive-doubling approach to find the right allocation size.

3) ArenaMemoryAllocator: Reclaim memory from the last allocation when
   the last allocation is closed.

Prior to these changes, a single row could be much smaller than the
frame size and still fail to be added to the frame.

* Style.

* Fix test.
2024-09-19 00:42:03 -07:00
..
avro-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
azure-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
datasketches Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-aws-rds-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-basic-security Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-bloom-filter Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-catalog Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-kerberos Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-pac4j Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
druid-ranger-security Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
ec2-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
google-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
hdfs-storage Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
histogram Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
kafka-extraction-namespace Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
kafka-indexing-service add DataSchema.Builder to tidy stuff up a bit (#17065) 2024-09-15 11:18:34 -07:00
kinesis-indexing-service add DataSchema.Builder to tidy stuff up a bit (#17065) 2024-09-15 11:18:34 -07:00
kubernetes-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
lookups-cached-global Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
lookups-cached-single Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
multi-stage-query Use the whole frame when writing rows. (#17094) 2024-09-19 00:42:03 -07:00
mysql-metadata-storage Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
orc-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
parquet-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
postgresql-metadata-storage Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
protobuf-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
s3-extensions Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
simple-client-sslcontext Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
stats Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30
testing-tools Prepare master for 32.0.0 release (#17022) 2024-09-10 11:01:20 +05:30