hutiefang76 opened a new issue, #12940: URL: https://github.com/apache/seatunnel/issues/12940
### Search before asking - [x] I searched existing issues and PRs for Avro schema caching and `RowToAvroConverter`. #11660 concerns the Parquet data model; this follow-up concerns nested ROW conversion in `seatunnel-format-avro`. ### Description Track the non-blocking performance follow-up requested in the review of #12900. In `RowToAvroConverter.resolveObject`, each non-null ROW calls the schema converter before creating its `GenericRecordBuilder`. This rebuilds a schema tree for each nested ROW value, including ROWs inside ARRAYs and MAPs. The legacy path already has this behavior; the nullable-layout option in #12900 is not its origin. The goal is to reuse immutable nested schemas without changing serialized bytes or record names. No allocation benchmark has been run for this issue, so there is no measured performance claim yet. A follow-up should preserve: - Default and explicit `avro_row_nullable = false` bytes and legacy nested record names. - Nullable union layout and resolution of present and null ROWs at every depth. - Different ROW structures with the same leaf name under different parents; a cache keyed only by field name would conflate them. - Public serializer/deserializer behavior and Kafka/Pulsar option wiring. Before choosing a cache or reusing branches of the enclosing schema, compare allocation profiles and run the existing byte-compatibility and nested round-trip regressions. This issue tracks that investigation separately from the correctness fix in #12900. ### Usage Scenario Avro serialization of rows containing nested ROW fields, including ROW elements in ARRAYs and MAP values, as used by Kafka and Pulsar jobs. ### Related issues #12879, #12900 ### Are you willing to submit a PR? - [x] Yes. I can investigate this as a separate follow-up after the current correctness changes. ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
