avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan Blue (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-695) Cycle Reference Support
Date Thu, 10 Sep 2015 17:21:47 GMT

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

Ryan Blue commented on AVRO-695:
--------------------------------

[~sachingoyal], on the Avro list I sent an example of using logical types to implement circular
references. Did that work for your use case? The code I sent is now a [unit test for logical
types|https://github.com/apache/avro/blob/trunk/lang/java/avro/src/test/java/org/apache/avro/TestCircularReferences.java].
If that satisfies you, then maybe we can close out this issue.

> Cycle Reference Support
> -----------------------
>
>                 Key: AVRO-695
>                 URL: https://issues.apache.org/jira/browse/AVRO-695
>             Project: Avro
>          Issue Type: New Feature
>          Components: spec
>    Affects Versions: 1.7.6
>            Reporter: Moustapha Cherri
>         Attachments: AVRO-695.patch, AVRO-695.patch, PERF_8000_cycles.zip, avro-1.4.1-cycle.patch.gz,
avro-1.4.1-cycle.patch.gz, avro_circular_references.zip, avro_circular_refs6.patch, avro_circular_refs7.patch,
avro_circular_refs_2014_06_14.zip, circular_refs_and_nonstring_map_keys_2014_06_25.zip
>
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> This is a proposed implementation to add cycle reference support to Avro. It basically
introduce a new type named Cycle. Cycles contains a string representing the path to the other
reference.
> For example if we have an object of type Message that have a member named previous with
type Message too. If we have have this hierarchy:
> message
>   previous : message2
> message2
>   previous : message2
> When serializing the cycle path for "message2.previous" will be "previous".
> The implementation depend on ANTLR to evaluate those cycle at read time to resolve them.
I used ANTLR 3.2. This dependency is not mandated; I just used ANTLR to speed thing up. I
kept in this implementation the generated code from ANTLR though this should not be the case
as this should be generated during the build. I only updated the Java code.
> I did not make full unit testing but you can find "avrotest.Main" class that can be used
a preliminary test.
> Please do not hesitate to contact me for further clarification if this seems interresting.
> Best regards,
> Moustapha Cherri



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message