I played a bit with ManagedEsent and I think it is a great library. When I tried to insert rapidly large amount of data I got the following exception:
Microsoft.Isam.Esent.Interop.EsentVersionStoreOutOfMemoryException: Version store out of memory (cleanup already attempted)
at Microsoft.Isam.Esent.Interop.Api.Check(Int32 err) in C:\Work\managedesent-61364\EsentInterop\Api.cs:line 2739
at Microsoft.Isam.Esent.Interop.Api.JetUpdate(JET_SESID sesid, JET_TABLEID tableid) in C:\Work\managedesent-61364\EsentInterop\Api.cs:line 2394
My test app (single threaded) is very simple. I have only one table with two columns (JET_coltyp.Long and JET_coltyp.LongBinary). I am not sure what could be reason for this error. I tried to tweak the following InstanceParameters (CircularLog, LogFileSize
and LogBuffers) without success. Changing cache size did not help as well. When the insert rate is slower everything works fine.
Does anyone know a solution for this problem?