I just found "Has anyone published a detailed comparison between different in-memory RDBMSs?" that is related to my question.
TimesTen (see also) is a In-Memory Database from oracle.
It has a lot going for it including.
However it is priced out of the reach of most people ($41,500.00 / Processor).
So what alternatives are there, and what are there pros and cons.
(I am using .NET if it changes your answer)
The default RAM policy for a TimesTen database is inUse . You can set the RAM policy before loading the database into memory. See "Specifying a RAM policy" for more information. Use the ttAdmin utility to load (or reload) the database into memory, or unload the database from memory.
MemSQL is a distributed relational database management system that combines in-memory row-based storage and disk-based column-oriented storage. It uses code generation to compile Structured Query Language into machine code. On April 23, 2013, MemSQL Inc. first, introduce the initial release of MemSQL database.
In-memory NoSQL database management system is a database management system that stores all the data in the main memory and persists each update on disk. Persistency is provided by saving each data modification request in a binary log. Since the log is written in append-only mode, it is rarely a bottleneck.
In-memory databases are faster than traditional databases because they require fewer CPU instructions. They also eliminate the time it takes to access data from a disk. In-memory databases are more volatile than traditional databases because data is lost when there is a loss of power or the computer's RAM crashes.
I asked this question a LONG time ago, these days Microsoft SQL Server have "In-Memory OLTP" that is a memory-optimized database engine integrated into the SQL Server engine. It is not cheap, but seems to be very fast for some workloads.
A popular in-memory database system is McObject's eXtremeDB, see
http://www.mcobject.com/extremedbfamily.shtml
There is also a good white paper, offered for download from the home page of McObject's Web site, called, "In-Memory Database Systems: Myths and Facts". It clarifies some questions that arise when discussing the technology, such as, "how is an IMDS different from a 'traditional' database running on a RAM disk?"
Above question was asked (and answered) way back in 2009. However, the question is still relevant and we can give a 2nd look.
I can suggest following alternatives to TimesTen:
All of the above can run in-memory. Features-wise you might find things missing as compared to TimesTen. But they are certainly worth a look.
Generally, in this field people also look at kdb from Kx Systems. I think both these systems really had they hay-day in the early 2000's. I would see if a tuned MySQL with a solid state RAID array would give you the performance you need.
BTW, I once wrote a time series database which outperformed both TimesTen and Kdb. It supported a SQL-92 syntax. The key to the performance was binding the schema to C++ template based classes, and using memory mapped files. Allowing for on-the-run schema changes is quite expensive, and defining the schema at compile time, data lookups could be retrieved in just a few assembly instructions.
Another for the list: open-source Tarantool is a persistent in-memory option that like TimesTen supports ACID transactions and SQL. Unlike TimesTen, though, it can be auto-sharded and also features a full Lua application server for stored procedures.
I have recently done a comparison betweem Oracle TimesTen and Sybase ASE IMDB.
The article is in two parts and available from the following links.
http://searchoracle.techtarget.com/tip/In-memory-databases-Oracle-TimesTen-vs-Sybase-ASE
http://searchoracle.techtarget.com/tip/In-memory-databases-Oracle-TimesTen-vs-Sybase-ASE-part-2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With