Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Alternative to the TimesTen in memory database [closed]

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.

  • Fast, consistent response time
  • High transaction throughput
  • Standard SQL, no application rewrite
  • Persistent and recoverable
  • High availability and no data loss

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)

like image 287
Ian Ringrose Avatar asked Oct 20 '09 11:10

Ian Ringrose


People also ask

How do I check my RAM policy in TimesTen?

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.

Is MemSQL in-memory database?

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.

Is NoSQL in-memory 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.

What are different in-memory databases?

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.


6 Answers

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.

like image 142
Ian Ringrose Avatar answered Oct 14 '22 02:10

Ian Ringrose


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?"

like image 22
user193338 Avatar answered Oct 14 '22 03:10

user193338


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:

  • SQLite
    • Link: http://www.sqlite.org/inmemorydb.html
    • Advantages: Small footprint, It's RDBMS (no application rewrite required)
    • Disadvantages: No row-level locking
  • H2
    • Link: http://www.h2database.com/html/features.html#in_memory_databases
    • Advantages: It's RDBMS (no application rewrite required), row-level locking
  • HyperSQL
    • Link: http://hsqldb.org/
    • Advantages & Disadvantages: Very similar to H2 (above).
  • Redis
    • Link: http://redis.io
    • Advantages: Blazingly fast with native support for data structures like list, hash, set, sorted set etc
    • Disadvantages: Not an RDBMS (you may have to rewrite your application)

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.

like image 32
Manu Manjunath Avatar answered Oct 14 '22 02:10

Manu Manjunath


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.

like image 35
brianegge Avatar answered Oct 14 '22 01:10

brianegge


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.

like image 30
eabates Avatar answered Oct 14 '22 02:10

eabates


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

like image 23
Mich Talebzadeh Avatar answered Oct 14 '22 01:10

Mich Talebzadeh