Hi Lucas, et. al.
We have Orient embedded in a test product that has been distributed out in the field to a few customers. What we have found is that Orient DB is highly prone to data corruption.
Caused by: com.orientechnologies.orient.core.exception.ORecordNotFoundException: The record with id '#0:2' not found
at com.orientechnologies.orient.core.record.ORecordAbstract.reload(ORecordAbstract.java:266)
at com.orientechnologies.orient.core.record.impl.ODocument.reload(ODocument.java:367)
at com.orientechnologies.orient.core.type.ODocumentWrapper.reload(ODocumentWrapper.java:82)
at com.orientechnologies.orient.core.type.ODocumentWrapperNoClass.reload(ODocumentWrapperNoClass.java:67)
at com.orientechnologies.orient.core.index.OIndexManagerAbstract.load(OIndexManagerAbstract.java:100)
at com.orientechnologies.orient.core.index.OIndexManagerAbstract.load(OIndexManagerAbstract.java:52)
at com.orientechnologies.orient.core.metadata.OMetadata$2.call(OMetadata.java:121)
at com.orientechnologies.orient.core.metadata.OMetadata$2.call(OMetadata.java:112)
at com.orientechnologies.common.concur.resource.OSharedContainerImpl.getResource(OSharedContainerImpl.java:53)
... 32 common frames omitted
Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: Error on retrieving record #0:2 (cluster: internal)
at com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:239)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.executeReadRecord(ODatabaseRecordAbstract.java:586)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.reload(ODatabaseRecordAbstract.java:249)
at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.reload(ODatabaseRecordAbstract.java:72)
at com.orientechnologies.orient.core.record.ORecordAbstract.reload(ORecordAbstract.java:259)
... 40 common frames omitted
Caused by: com.orientechnologies.orient.core.exception.OStorageException: Error on reading record from file 'default.0.oda', position 3541, size 550.28Mb: the record size is bigger then the file itself (6.40Kb). Probably the record is dirty due to a previous crash. It is strongly suggested to restore the database or export and reimport this one.
at com.orientechnologies.orient.core.storage.impl.local.ODataLocal.getRecord(ODataLocal.java:231)
at com.orientechnologies.orient.core.storage.impl.local.OStorageLocal.readRecord(OStorageLocal.java:1636)
at com.orientechnologies.orient.core.storage.impl.local.OStorageLocal.readRecord(OStorageLocal.java:976)
at com.orientechnologies.orient.core.db.raw.ODatabaseRaw.read(ODatabaseRaw.java:233)
... 44 common frames omitted
This happens after some days of running the application. I am not sure how to debug this. Are you sure that Orient is ready for prime time? For us, the database corrupts data after a period. Data loss is obviously unacceptable.