Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

looking for a stand-alone, in-memory data server with sequential access [closed]

We need an in-memory data structure / DB server with following characteristics:

  1. stand-alone server: will run on the same machine as the clients, so any kind of IPC is ok
  2. sequential access: get next/previous key
  3. two keys (string) per record: kind of a bi-directional map, actually
  4. in-memory only: should have option for no persistence at all
  5. RAM disk/tmpfs solution is not desirable
  6. SQL/ODBC is an option, although not required
  7. commercial product ok, if the OEM license price is reasonable

So far we have considered the following options, but no satisfactory solution yet:

  • mysql: answers all requirements, but now answer yet as to how much an OEM license will cost
  • memcached, cassandra: no sequential access, according to online docs
  • Redis: seems as a nice tool, but again, I don't see get get nex/prev in the spec
  • Postgres: couldn't make it work well on Linux/ODBC

Seems that all nosql in-memory DBs provide only direct access by key, hash-table style. Have not checked Apache Derby yet.

We run on Linux, the client is in C++.

Will be glad to have your suggestions. Thanks!

EDIT: It seems that we will be pursuing the mysql option, we've got a reasonable price offer, and it will also be useful as our main (persistent) DB. Thanks for all answers, it is as usual difficult to select just one.

like image 723
davka Avatar asked Dec 08 '10 12:12

davka


1 Answers

I'd have a look at SQLite, with the database file name set to ":memory:" this will create an in memory database that will no longer exist when your application closes.

It is public domain so that there is no issue with licensing

like image 103
Mumbles Avatar answered Sep 22 '22 13:09

Mumbles