You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/11/28 04:28:00 UTC

[jira] [Commented] (AVRO-2275) Refactor schema-resolution code from grammar-generation

    [ https://issues.apache.org/jira/browse/AVRO-2275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16701386#comment-16701386 ] 

ASF GitHub Bot commented on AVRO-2275:
--------------------------------------

rstata opened a new pull request #395: AVRO-2275 Refactor schema-resolution code from grammar-generation
URL: https://github.com/apache/avro/pull/395
 
 
   Efforts to improve performance by code-generation and other means have been hampered by the fact that our schema-resolution logic is embedded in resolving-grammar-generation logic (see [AVRO-2275](https://issues.apache.org/jira/browse/AVRO-2275)).  This patch factors the resolution logic out from the grammar-generation logic, so the resolution logic can be more easily reused.  See the design document included in this patch for more information.
   
   This patch consists of the following pieces:
   * A design/user-guide document (`refactoring-resolution.md`).
   * Core changes: a new file, `Resolver.java`, containing the extracted resolution logic, and a rewrite of `ResolvingGrammarGenerator.java` based on the new `Resolver.java`.
   * Changes to resolution-related tests.  These changes do not change the tests themselves, but rather output more diagnostic information upon failure to help developers resolve bugs.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Refactor schema-resolution code from grammar-generation
> -------------------------------------------------------
>
>                 Key: AVRO-2275
>                 URL: https://issues.apache.org/jira/browse/AVRO-2275
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Raymie Stata
>            Assignee: Raymie Stata
>            Priority: Major
>
> In my own work to extend AVRO-2090, and also in AVRO-2247, an alternative approach optimizing decoders, we were forced to re-implement Schema resolution logic because it's currently embedded deeply in ResolvingGrammarGenerator.  However, in the past the Avro community found it hard to maintain multiple implementations of the schema resolution code, as it is tedious and error-prone code.
> In this JIRA we've refactored the resolution code into a new class called Resolver, and have rewritten ResolvingGrammarGenerator to be a client of this class.  This rewrite passes the full regression suite, including bug-for-bug compatibility with a few questionable resolutions rules, such as the "soft matching" rule for record in unions.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)