OrientDB-NET.binary
OrientDB-NET.binary copied to clipboard
Tree-based RidBag not deserialized correctly
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)
This is actually a problem with the server side on the binary protocol. The .Net and Node binary drivers experience the same behavior.
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.