[ 
https://issues.apache.org/jira/browse/AVRO-921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Douglas Creager updated AVRO-921:
---------------------------------

    Attachment: 0001-Default-wrapped-buffer-implementation-is-zero-copy.patch

This patch adds a zero-copy wrapped buffer.

The {{avro_wrapped_buffer_new_copy}} function creates a copy of an external 
buffer, but that new copy is reference-counted.  Any additional copies will 
just increment the reference count, and will share the underlying content 
buffer.

The {{avro_wrapped_buffer_new}} function wraps an existing buffer, but since we 
don't have any real control over that buffer, we have to make a real copy of it 
if its {{copy}} method is called.  This first copy, however, becomes properly 
reference-counted, just like a wrapped buffer created via 
{{avro_wrapped_buffer_new_copy}}.  Therefore, any additional copies (after the 
first) will be reference-counted and shared.
                
> Zero-copy implementation of wrapped buffer interface
> ----------------------------------------------------
>
>                 Key: AVRO-921
>                 URL: https://issues.apache.org/jira/browse/AVRO-921
>             Project: Avro
>          Issue Type: New Feature
>          Components: c
>    Affects Versions: 1.6.0
>            Reporter: Douglas Creager
>            Assignee: Douglas Creager
>         Attachments: 
> 0001-Default-wrapped-buffer-implementation-is-zero-copy.patch
>
>
> The {{avro_wrapped_buffer_t}} is used by the bytes and string types to store 
> the content of the Avro value.  The wrapped buffer interface is capable of 
> being zero-copy, where the underlying content buffer is shared across 
> multiple Avro values.  But our default implementation would create a new 
> physical copy of the data every time the {{copy}} method is called.  It would 
> be good to have a default zero-copy implementation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to