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] [Comment Edited] (AVRO-695) Cycle Reference Support
Date Thu, 10 Sep 2015 17:22:46 GMT

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

Ryan Blue edited comment on AVRO-695 at 9/10/15 5:22 PM:
---------------------------------------------------------

[~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.

We can also look at adding the referencable and reference logical types so you can use them
without adding them yourself.


was (Author: rdblue):
[~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