Affects Version/s: 1.12.0
Fix Version/s: 1.13.0
DRILL-5211 describes how Drill runs into OOM issues due to Drill's two allocators: Netty and Unsafe. That JIRA also describes the solution: limit vectors to 16 MB in length (with the eventual goal of limiting overall batch size.)
DRILL-5517 added "size-aware" support to the column accessors created to parallel Drill's existing readers and writers. (The parallel implementation ensures that we don't break existing code that uses the existing mechanism; same as we did for the external sort.)
This ticket describes work to extend the column accessors to handle repeated maps and lists. Key themes:
- Define a common metadata schema for use in this layer and the "result set loader" of
DRILL-5657. This schema layer builds on top of the existing schema to add the kind of metadata needed here and by the "sizer" created for the external sort.
- Define a JSON-like reader and writer structure that supports the full Drill data model semantics. (The earlier version focused on the scalar types and arrays of scalars to prove the concept of limiting vector sizes.)
- Revising test code to use the revised column writer structure.
Implementation details appear in the PR.