In-memory databases have existed since the 1980’s (Garcia-Molina/Salem 1992).
Since then, typical application fields were update intensive applications, which demand short and predictable response times, such as telecom, financial and defense applications (Blott/Korth 2002; Xiongpai 2009; Garcia-Molina/Salem 1992). Nowadays, there is a broad discussion on the use of in-memory databases for all kind of enterprise applications, including even large and complex enterprise resource planning applications (Plattner/Zeier 2011).
It has been around for the last 30 years. Why is it getting importance today? What makes the difference? or is there a difference at all? Should somebody care about it?
If in-memory database is the next best thing: why did not we see tremendous success in Oracle TimesTen or IBM SolidDB?
The solid state disk and Flash storage is getting better and better. Can’t I just use SSD of Fusion IO and get a performance boost since SSD and Flash is also some sort of memory?
Memcached is good enough: Can’t I just survive with Memcached?
RDBMS is good enough for me! All my systems have perfect performance? Should I care what in-memory DB is?
When you unplug the hardware you are dead in a in-memoryDB. That is why I never think about in-memory database. Caching is good, you do not die if you loose the info in the cache. Isn’t this a good point of view to focus just on caching?
In-memoryDB would be very expensive to run because it is running in DRAM? Wouldn’t be logical to focus on it when we get better DRAM prices?
I have a RDBMS. If I feel like moving to an in-memoryDB it is just an over night activity. Just move the DB into memory and I am done. Don’t you think so? ( We even tested that..)
In memoryDB is just a RDBMS running in RAM. Don’t you think so?
We are using Oracle. They have state of the art DB technology. We have Exadata and Exalytics servers. Therefore we have in-memory technology from Oracle. We have the state of the art in-memoryDB running in our company. We take in-memoryDB serious. Don’t you think so?
In-memoryDB is just good for Analytic applications. We have enough performance in our reports? We do not need in-memory computing now. Don’t you think so?
I would just answer those questions if you ask me to?
This is a description of findingrecords.gif. The image contrasts the paths of an application request to a disk-based RDBMS and TimesTen.
In the disk-based RDBMS, the application uses a SQL statement to initiate a request for a record. The statement is passed over an IPC connection to a query optimizer, which uses table numbers and page number to locates the pointer to a page in the buffer pool by using hashing and linear search methods. The record is copied into a private buffer and then passed across an IPC connection to the application.
In Timesten, the application also uses a SQL statement to initiate a request for a record. The statement is passed by direct link to a query optimizer, which determines the memory address of the record. The database has already been loaded from checkpoint files on disk into memory. The record is copied into the application buffer and returned to the application.