Search code examples
c++databaselinuxodbcin-memory-database

seeking recommendations for simple in-memory DB *server* (no persistence needed)


Should support multiple connections, preferably via ODBC. The clients will be running as separate processes on the same machine. No need for persistence, as the the clients will handle the persistence elsewhere. The clients are written in C++ if it matters.

The data is quite simple, it is a set of unrelated bi-directional maps. The access is either directly by a value or by a range (between X and Y), no updates. We don't actually need SQL here, so non-SQL solutions can also be considered.

The client application is multi-process and can run on several machines. Each machine should have a local copy of such DB, which is updated against the central store by its local clients.

Multiple Edits:

  1. the platform is Linux
  2. RAM disk is not an option for security reasons - we don't want that anyone with access to the machine would be able to view the data
  3. the data should may be persisted only in encrypted form, so the solution should either not persist the data at all or allow a user-defined filter/plugin for persistence.

Solution

  • Just because of my familiarity with it, I would go with mysql. To use it as an in memory database use memory as the table type. Redis is an in memory NoSql Database that would probably be a perfect fit for this(It runs in memory, with disc writing for persistence only which can be disabled).