Marko A. Rodriguez created TINKERPOP-1346:
---------------------------------------------
Summary: Create custom ReferenceXXX GryoSerializers
Key: TINKERPOP-1346
URL: https://issues.apache.org/jira/browse/TINKERPOP-1346
Project: TinkerPop
Issue Type: Improvement
Components: io, structure
Affects Versions: 3.2.0-incubating
Reporter: Marko A. Rodriguez
Fix For: 3.3.0
Right now, to send a {{ReferenceEdge}} message, we serialize the form as:
{code}
KryoClassInteger[ReferenceEdge] + KryoClassObject[Edge ID] +
KryoClassInteger[ReferenceVertex] + KryoClassObject[Vertex ID] +
KryoClassInteger[ReferenceVertex] + KryoClassObject[Vertex ID]
{code}
Assuming {{Long}} Element ids, the math says:
{code}
48 bytes = 4 bytes + (4 bytes + 8 bytes [long]) + 4 bytes + (4 bytes + 8 bytes
[long]) + 4 bytes + (4 bytes + 8 bytes [long])
{code}
We could get this smaller by not relying on Kryo's {{FieldSerializer}}.
{code}
KryoClassInteger[ReferenceEdge] + KryoClassInteger[VertexIDClass] +
KryoClassObject[Edge ID] + KryoObject[Vertex ID] + KryoObject[Vertex ID]
{code}
The math says:
{code}
36 bytes = 4 bytes + 4 bytes + (4 bytes + 8 bytes [long]) + 8 bytes [long] + 8
bytes [long]
{code}
{code}
Similar techniques would apply to {{ReferenceVertexProperty}} and
{{ReferenceProperty}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)