IN-MEMORY DATABASES Presenter #10: Robert Vitolo 10 REASONS Why it makes a good option for your DB IN-MEMORY DATABASES SUMMARIZED Stores and manipulates table data within the main memory space Also known as: MMDB (Main Memory Database) IMDB (In-Memory Database) IMDS (In-Memory Database System) Implemented using a large amount of memory and/or compression schemes Characterized by high performance through algorithmic simplicity and the lack of I/O operations 10 REASONS SUMMARIZED Real-time data processing Usage in embedded devices More ef ficient use of computer resources Data-set testing in application development Reduced development / manufacturing cost for products Feasibility due to dropping cost of RAM Cost ef fective alternative to data warehousing High capacity support through compression Flexibility through hybrid products Support of the ACID standard REAL TIME DATA PROCESSING When information is changing on a constant basis (in real time) Examples: Stock market trading Sensor monitoring Online auctions Air traffic control Limitations of traditional DBs: lack timing constraints, consistently high performance Real-time database systems utilizing an MMDB model can ensure consistency in the data that is captured and queried EMBEDDED DEVICES “Smart” devices dedicated to handle specific tasks Examples: Set-top boxes Cell phones: “Smart Phones” Rely on main memory for local storage of retrieved data Typically low power devices designed with modest hardware specifications Absence of magnetic disks improves power performance and MMDBs still operate faster than flash memory EFFICIENT USE OF RESOURCES Traditional DB optimization has focused on enhancing speed through improving frequent file I/O operations MMDBs are built from the ground up from the viewpoint of maximizing memory performance, fewer CPU instructions Fewer I/O operations, no need for building large indexes, no cache management, less code complexity CPU spends the bulk of it’s time working directly with data, not managing, translating, and moving it between CPU and disks TESTING IN ENTERPRISE APPLICATIONS Manufacturers of enterprise database/server applications need to run test suites on their software using large datasets to identify bugs Utilizing an MMDB reduces build times and down time by processing the dataset more quickly. REDUCED DEVELOPMENT / MANUFACTURING COSTS Streamlined code allows for easier development and easier debugging and troubleshooting. Specialized devices like smart phones can be manufactured for less money, as they don’t require extra disks for redundancy and can use fewer hardware components FALLING COST OF RAM HARD DRIVE PRICES UP 90 – 180% ALTERNATIVE TO DATA WAREHOUSING Upfront costs of hardware, servers and space make building a data warehouse a non-starter for small to mid -sized businesses. An MMDB and in-memory analytical tools provides the ability to analyze large data sets, but is simple to setup, administer, and maintain. SUPPORT FOR LARGE DATABASES THROUGH COMPRESSION Limitation of MMDB: Your database can only be as large as your main memory. Diverted through compression: Oracle’s Exalytics product allows up to 10TB of data in main memory per 1TB DRAM chip. In the future: deal with larger databases using DIMDB (Distributed In Memory Database) that harness the main memory systems of several computers connected by network or in the cloud Example: Network Cloud DB by Xeround FLEXIBILIT Y THROUGH HYBRID PRODUCTS Some MMDBs can be run in a hybrid mode, allowing both in memory data processing and on -disk tables. Examples: Solid DB by IBM Altibase H2 This allows an organization to try out an MMDB without abandoning their traditional DB structure if the hardware is already in place, or gradually transition to a fully MMDB solution as hardware needs to be replaced. SUPPORT FOR ACID STANDARD ACID: Atomicity, Consistency, Isolation, and Durability Biggest strength of an MMDB is also its biggest weakness: MMDB stores all data in volatile RAM Getting around it: NVRAM / Battery backup RAM Redundancy through backup to disk storage / Network