This project has moved and is read-only. For the latest updates, please go here.

What is NMemory?

NMemory is a non-persistent in-memory relational database engine that implements most of the traditional database features. Originally it was developed by a student group in the Department of Automation and Applied Informatics of Budapest University of Technology and Economy as the "MMDB" project.

What interface does it provide?

Basically it has a strongly typed Linq interface that makes possible to define data operations in a very convenient way.

What features does it have?

  • Relational tables
  • Foreign key relationship
  • Query, update, insert, delete
  • Indexes
  • Field constraints
  • Transaction logs (rollback, commit)
  • Transaction isolation
  • Coarse-grained locking (table locks)
  • Enlistment on ambient transaction
  • Query optimization and compilation
  • Customizable database engine

Is it an object oriented database?

No, it is just like a traditional relational database. However, with the use of Entity Framework and the Effort library you can easily wrap it with an object oriented layer.

Is it persistent?

No, it does not write data to any persistent media, this follows that your data will surely be dismissed if your process is terminated.

What is it meant for?

Its main purpose is to serve as the core component of the Effort library, so definitely this task drives its feature list at the moment.

In which areas does it lack functionality?

Transaction isolation currently lacks fined grained locking. Unfortunatelly most of the query optimizer sources was not mature enough to include in a public release, so the optimizer is quite rudimentary.

Last edited Nov 10 at 6:24 AM by zzzprojects, version 11


No comments yet.