Click here to Skip to main content
15,886,654 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello All,

I would like to know if somebody has already looked for an in-memory shareable database? I would like to use it for sharing complex objects between to applications over memory to be as fast as possible.

I have started to evaluate: NDatabase (http://ndatabase.codeplex.com/[^])

I just could not get the in-memory database created from the first instance available in the second one.

Do you think, this can be possible ? That would really be handy to have such a solution.

Thank you very much in advance for your inputs.
Best regards.
SuperMiqi
Posted
Comments
Zoltán Zörgő 16-Jan-15 8:09am    
What makes you thinking that in-memory databases, or especially this one is supporting shared mode between processes? Sharing memory between processes is quite complicated thing... I don't know of anything on Windows capable of this.

IMDB's are not for that, not on Windows anyway. There other fast methods for IPC, like memory-mapped files: http://coders-corner.net/2013/03/22/inter-process-communication-with-memory-mapped-files-part-01-transfer-a-data-structure-and-an-object/[^]
 
Share this answer
 
Comments
SuperMiQi 16-Jan-15 8:40am    
Hello,
Thank you for your quick answer.
I have a very complex object and In-Memory style database would make it easier to update only a few property values from a deep object.
I am using a geometry object and inside, I have components, lines, triangles, ...
What could you recommand me as best alternative ?

Thank you very much in advance for your inputs.
Best regards.
SuperMiqi
Zoltán Zörgő 16-Jan-15 8:46am    
Keep in mind, that keeping things in-memory is quite expensive, do you really need IPC that fast? I am pretty confident that any object store that enables you to use native communication or at least named pipe, will be fast enough. As RDBMS (thus EF and so on) looks not the best approach for you, I suggest you look around in NoSQL field
SuperMiQi 16-Jan-15 10:09am    
The goal is to replace PInvoke to dig into memory to reach some parcel of data in a database style way.

What could be the best way to proceed then ?
This seems maybe there is a hole on the market then.
Zoltán Zörgő 16-Jan-15 13:37pm    
If you stick to shared memory mode, try MMF from above.
SuperMiQi 17-Jan-15 9:04am    
Hello,
Thank y ou for your answer.
What does mmf mean?
Thank you.
The goal is to replace PInvoke to dig into memory to reach some parcel of data in a database style way.

What could be the best way to proceed then ?
This seems maybe there is a hole on the market then.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900