We all know and have used regular databases like Oracle, Mysql etc.. These are what we called On Disk Databases where all the time data is persisted in an external storage ( usually a disk drive). However there exists a different type of database architecture called as In Memory. As the name suggest database contents are retained in memory as opposed to the Disk. IBM Solid DB is an example of such In- Memory databases.
Each of the databases have its own pro and cons and have its own place depending upon the application requirements where they would be used.
The following two paragraphs tries to bring out the some of the features of these databases that helps to compare against each other.
- All data stored on disk, disk I/O needed to move data into main memory when needed.
- Data is always persisted to disk.
- Traditional data structures like B-Trees designed to store tables and indices efficiently on disk.
- Virtually unlimited database size.
- Support very broad set of workloads, i.e. OLTP, data warehousing, mixed workloads, etc.
- All data stored in main memory, no need to perform disk I/O to query or update data.
- Data is persistent or volatile depending on the in-memory database product.
- Specialized data structures and index structures assume data is always in main memory.
- Optimized for specialized workloads; i.e. communications industry-specific HLR/HSS workloads.
- Database size limited by the amount of main memory.
If you have any experince using In Memory database, please share.