Traditional database systems are designed to store data on persistent media. But working with a data in memory is much faster than working with persistent medias.
When working with a traditional database system there are disk I/O processes, caching processes. and the following diagram will describe the process of accessing and modifying data with a traditional database.
In-memory databases are faster than disk-optimized databases since the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory eliminates seek time when querying the data, which provides faster and more predictable performance than disk.
Applications where response time is critical, such as those running telecommunications network equipment and mobile advertising networks, often use main-memory databases.
Here is a set of features of on-disk and in-memory database system (Extracted from stackoverflow)
On-Disk Databases
- 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.
In-Memory Databases
- 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.
"mcobject" and "WhatIs.com" sites provide more data about in-memory database systems and here is a list of in-memory databases
- dashDB from IBM
- H2
- Ignite by apache
- SQLite
- Redis
No comments:
Post a Comment