[ 
https://issues.apache.org/jira/browse/IGNITE-14316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612616#comment-17612616
 ] 

Stanislav Lukyanov commented on IGNITE-14316:
---------------------------------------------

The only purpose of this in AI 3 architecture is the client-side serialization 
of complex (multi-level) objects into a flat structure. Essentially, the user 
needs an easy way to insert a nested object. The object will necessarily be 
rendered to a `byte[]`, and AI won't really have any introspection into it.

It seems like something Ignite should have as little to do with as possible.
 # The format and the serializer should be some industry standard, available in 
virtually any language. Avro immediately comes to mind.
 # Mapping complex user objects to a simpler format DB understands is the 
definition of what ORM does.
 ## When I care about the schema, it's natural to use an actual ORM. Need to 
investigate what's the latest and greatest in ORMs in terms of serialization 
support.
 ## When all I want is to do a simple schemaless put with complex objects like 
`put(new Key(a, b, c), new Val(new NestedVal(d, e), f))`, I probably don't want 
an ORM. In this case, the user code has to specify a way to serialize the 
objects. I guess there might be a default one (Avro? Java serialization?) but 
it feels like a slippery road.

> Binary object API for arbitrary user objects.
> ---------------------------------------------
>
>                 Key: IGNITE-14316
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14316
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Priority: Major
>              Labels: iep-54, ignite-3
>   Original Estimate: 240h
>  Remaining Estimate: 240h
>
> Let's create BinaryObject (BO) interface and a builder interface for it 
> assuming
> - BO is a self-described object. Similar to Ignite-2 one with a compact 
> footer.
> - BO is unmanaged. SchemaManager doesn't care about its schema at all.
> - BO can be deserialized to user class with a specified deserializer.
> - BO has a flat structure, cyclic links are not allowed. However, one can 
> restore links on reserialization.
> - BO must not have any dependencies on Ignite internals.
> - Ignite should provide some base implementation for BO and builder.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to