[
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