I was just think that now it is common to have enough RAM on your database server to cache your complete database why are the specialist in memory database (e.g TimesTen, see also Wikipedia page) that were all the rage a few years ago not being used more?
It seems to be that as time go on, none disk based databases are being used less, e.g most applications are now built on conventional rational databases. I would have expected the opposite as RAM is getting close to being free for a lot of servers.
I am asking this, as I just read up on the stack-overflow-architecture and the page says
This is significant because Stack
Overflow’s database is almost
completely in RAM and the joins still
exact too high a cost.
But I don’t think this would be a problem if “pointers” and “collections” were used instead of the normal btree. Btree are a very clever to get round limits on disk access speed, e.g they trade CPU useage to reduce disk usage. However we now have so match ram.
But we still need database, as doing your own
- Locking
- Deadlock detection
- Transaction logging
- Recovering
- Etc
Is very hard.
@S.Lott, Given we all spend so long choosing indexes, avoiding joins and investigating database performance problems. There must be a better way. A few years ago we were told the “in memory databases” was the better way. So before I jump into using one etc, I wish to know why other people are not using them more.
(I am unlikely to use TimesTen myself, as it is high priced ($41,500.00 / Processor) and I don’t like talking to Oracle sales people – I rather spend my time writing code.)
See also:
- Alternative to the TimesTen in memory database
- Has anyone published a detailed comparison between different in-memory RDBMSs?
Update:
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.
Most probably there are just no mature products of memory databases which could be used as a full replacement for a classic database.
Relational database are a very old concept. Although there were many approaches to move forward and develop new technologies, eg. object oriented databases, the relational databases didn’t really change their concepts. Don’t expect things to change too fast, since databases didn’t change much in the last ten or fifteen years or even longer.
I think, development of technologies is not as fast as one might believe. It takes decades for new concepts to be matured and established. First of all in database technologies, where maturity is much more important then anything else.
In ten or twenty years, databases are probably not the same anymore as they are today. If in-memory databases are the future – nobody can tell this today – they just need some more time to develop.