OrientDB-NET.binary icon indicating copy to clipboard operation
OrientDB-NET.binary copied to clipboard

Tree-based RidBag not deserialized correctly

Open anderbakk opened this issue 8 years ago • 2 comments

I have a vertex connected to several other vertices with the same edge type.

For 39 edges the RecordCSVSerializer.cs works fine (RidBag embedded mode), but once I reach 40 or more the ODocument will contain an empty list of ORIDs.

RecordCSVSerializer.cs => ParseRidBags() The size (var size = reader.ReadInt32EndianAware(); ) is always set to -1 when RidBag is in Tree-based mode, and the value for the edges is just set as an empty list in the returned ODocument.

(Currently running as a single server, with the default RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD value of 40)

anderbakk avatar Mar 29 '17 11:03 anderbakk

This is actually a problem with the server side on the binary protocol. The .Net and Node binary drivers experience the same behavior.

GrayDelacluyse avatar Mar 29 '17 15:03 GrayDelacluyse

That's right, the server must have the following setting (in orientdb-server-settings.xml or in server.sh/.bat):

-DridBag.embeddedToSbtreeBonsaiThreshold=100000000

Or any high number, so it never transform the linkbag in a tree, because only the Java driver support it.

lvca avatar Mar 29 '17 15:03 lvca