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

Sean Busbey updated AVRO-1312:
------------------------------
    Priority: Major  (was: Minor)

> Make use of the sun.misc.Unsafe class in the IO streams implementation if a 
> JDK supports it
> -------------------------------------------------------------------------------------------
>
>                 Key: AVRO-1312
>                 URL: https://issues.apache.org/jira/browse/AVRO-1312
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Leo Romanoff
>
> This is a follow-up of the AVRO-1282 issue.
> AVRO-1282 has used Unsafe to significantly improve performance of 
> Reflection-based serialization. But Unsafe can be also used to improve 
> performance of IO streams, which would be beneficial not only for 
> Reflection-based, but for all kinds of serializers. Experience with Kryo 
> shows that it can boost performance even higher that the speedups provided by 
> AVRO-1282. 
> Pros:
> - Overall performance boost
> - Biggest speedups of this optimizations are expected for the arrays of 
> primitive types, as they can be very efficiently written using bulk 
> operations instead of writing their elements one by one.
> - It is possible to write directly into the off-heap memory buffers at the 
> native speed, without using intermediate byte arrays. This can be interesting 
> for Big Data apps, which often keep a lot of data off-heap
> Cons:
> - Unsafe can efficiently write only primitive types in their native byte 
> order and using their fixed size. This is not quite compatible with Avro's 
> format. 
> (While one can still use Unsafe to more efficiently write single elements 
> even using their variable length encoding, the biggest benefits of bulk array 
> serialization would be lost.)
> - Introducing this feature may require a definition of a new format for Avro. 
> This format would be very fast, but not very space efficient as it would use 
> fixed-size representation.
> BTW, initial tests where a sketch of the proposed optimization is applied 
> only to Floats and Doubles has shown immediate boost of 35%. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to