You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Lionel Delphin-Poulat (JIRA)" <ji...@apache.org> on 2014/06/05 11:38:01 UTC

[jira] [Commented] (AVRO-767) Support for message framing

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

Lionel Delphin-Poulat commented on AVRO-767:
--------------------------------------------

I wonder if work has been done on the subject since 2011. I tried to insert it in version 1.7.6 of the library as a first step to add rpc support introduced by Gilles Gaillard in AVRO-777. I have only a shallow understanding of avro and the improvements by Gilles.
Most of the code contained in frame_memory_patch could be reported in version 1.7.6. However, there are some parts that are more delicate to insert. When the read type of the value is in AVRO_BYTES and message framing is used (in value-readc.c), the read_bytes method does not allocate memory but rather returns a pointer to the data. The pointed data should not be free. So in this case, the free function specified in avro_wrapped_alloc_new should free the avro_wrapped_buffer structure but not the data inside.

1. Is my understanding correct?
2. Does this mechanism apply for other value types? I think does not apply to simple types such as AVRO_FLOAT, AVRO_DOUBLE, but I wonder if it applies to more complex types such as AVRO_STRING, AVRO_ARRAY, AVRO_MAP, where memory copy might be avoided.

Thanks!

> Support for message framing
> ---------------------------
>
>                 Key: AVRO-767
>                 URL: https://issues.apache.org/jira/browse/AVRO-767
>             Project: Avro
>          Issue Type: Improvement
>          Components: c
>    Affects Versions: 1.5.0
>            Reporter: sebastien david
>              Labels: patch
>         Attachments: frame_memory_patch.diff
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> Avro-c does not currently provide message framing, the attached patch implements this improvement plus path throught for byte array encoding/decoding (don't copy anymore the bytes but use direct pointer).



--
This message was sent by Atlassian JIRA
(v6.2#6252)