Skip to content

[java] Regression in Compact codec row encoding due to removing fixed width binary #3117

@stevenschlansker

Description

@stevenschlansker

In the original version of Compact Codec, I made sure to in-line fixed width binary structures, so that there is no overhead of the indirection of a packed size when it is always known. This is a key optimization of the Compact codec.

In #2931, this optimization was eliminated.

I agree with Fory having its own type system instead of importing Arrow types, but the fixed width binary is a key optimization for our use case that uses many UUID objects. Is it possible to bring this functionality back?

Component(s)

Java

Minimal reproduce step

Test case:

f3d4629#diff-a9a719017351d352dffa11e97e9bc0cbfb4a74b56766eeb6fde5021ffe17c684R184-R193

What did you expect to see?

The original size serializes the test case to 17 bytes

What did you see instead?

Now, the encoded size is 32 bytes, almost a 100% increase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions