内存数据库介绍
深入内存数据库
速度会明显加快
2024/2/15
20
第21页/共51页
访问方式
Data store 可被多进程/多线程所共享:
✓直接连接
应用以共享模式访问DataStore,DataStore被预先装载到共 享内存段,应用则映射该共享内存段到自己的运行地址空间上
2024/2/15
8
第9页/共51页
使用场景(2):热点数据缓存
缓存当前正使用的“热点数据”或重要客户的数据, 已提高反应速度优化服务,提高用户的忠诚度.
针对Table, 换出的数据不能再换入!
2024/2/15
9
第10页/共51页
使用场景(3):实时交易
内存数据库是可对消息队列和事务进行处理的实时数 据库,并可把处理结果“push” 到后台数据库
21
第22页/共51页
MicroLogging
Data store 可被多进程/多线程所共享:
✓共享进程空间会使嵌入式应用受进程故障的影响
✓ MicroLogging确保内存数据库不受应用进程故 障的影响
异常退出进程的未决事务被回滚 如有必要,数据库进行Revorvery
✓ 安全且高性能
2024/2/15
dcache的介绍和使用
dcache的介绍和使用
DCache是一个高性能、高可用的内存数据库,是基于Tencent+开
源的分布式缓存系统,被广泛应用于大型互联网公司的数据缓存和加
速场景中。DCache具备分布式、高可用、高性能、可扩展等特点,能
够快速响应海量数据访问请求,提供稳定可靠的数据存储和获取服务。
一、DCache的简介
DCache作为一个分布式缓存系统,充分发挥了内存访问速度快的
优势,并采用了分布式数据存储的方式,保证了数据的高可用性和可
扩展性。DCache的核心组件包括数据节点和代理节点,并通过FDS
(分布式文件系统)进行数据存储,支持多种数据类型的存储和查询
操作。
二、DCache的特点
1. 高性能:DCache利用了内存的高速读写能力,能够快速响应用
户的数据请求,并能够支持高并发的访问。
2. 高可用:DCache采用了分布式的方式进行数据存储,通过数据
冗余和备份策略,保证了数据的可用性和可靠性。
3. 可扩展性:DCache的架构设计具备良好的可扩展性,通过增加
节点的方式,可以支持更大规模的数据存储和查询需求。
4. 支持多数据类型:DCache支持多种数据类型的存储,如字符串、列表、哈希表等,并提供了相应的查询接口和操作命令。
5. 分布式存储:DCache将数据分布存储在多个节点上,提高了数
据的并行读取和写入能力,提升了整体的性能。
三、DCache的使用场景
1. 数据缓存:DCache可以作为应用程序的缓存层,将热点数据存
储在内存中,加快数据的访问速度,提升应用程序的性能。
2. 分布式计算:DCache的分布式存储能力可以满足大规模分布式
内存数据库的使用场景
内存数据库的使用场景
内存数据库是将数据存储在内存中的数据库系统,相比传统的磁盘数据库,它具有更高的性能和响应速度。以下是一些内存数据库的使用场景:
1. 实时数据分析:内存数据库能够快速加载和处理大量数据,适用于实时数据分析场景,例如在线广告投放、实时风险分析等。
2. 缓存:内存数据库可以用作缓存层,将常用的数据存储在内存中,以提高访问速度和响应性能。这对于高并发的应用程序和Web服务非常有用。
3. 实时数据处理:内存数据库对于需要快速处理和响应实时数据的应用程序非常适用,例如股票交易系统、实时订单处理等。
4. 临时数据存储:内存数据库可以用于临时存储计算过程中的中间数据,以提高计算性能。这对于大数据处理和复杂计算任务非常有用。
5. 互动游戏:内存数据库能够处理高并发的游戏交互数据,例如玩家位置、角色状态等,保证游戏的流畅性和实时性。
总之,内存数据库适用于需要高性能和实时响应的场景,特别是对数据访问速度和响应时间有较高要求的应用程序。但需要注意的是,由于内存数据库将数据存储在内存中,数据的持久性和容错能力相对较弱,不适用于需要长期存储和大容量数据的应用。
内存数据库 原理
内存数据库原理
内存数据库(In-Memory Database,IMDB)是一种将数据存储在主存储器中的数据库管理系统。相较于传统磁盘存储的数据库,内存数据库能够提供更快的数据访问速度和更低的延迟。本文将详细介绍内存数据库的原理。
内存数据库的主要原理是将数据存储在计算机的主存储器中,而不是存储在磁盘上。这种存储方式带来了两个主要的优势:快速的数据访问速度和低延迟。相较于读取磁盘的时间,访问主存的时间非常短,因此内存数据库可以实现更快的数据读取和写入操作。此外,内存数据库还可以充分利用计算机主存储器的多核性能,实现并行处理和高并发访问。
内存数据库的实现有两个主要方面:数据存储和数据管理。数据存储是指将数据存储在主存储器中的过程,而数据管理则是指对存储在内存中的数据进行管理和操作的过程。
在数据存储方面,内存数据库使用多种技术来优化数据的存储和访问性能。首先,内存数据库使用了高效的数据结构,如哈希表、红黑树等,来存储和组织数据。这些数据结构可以提供快速的数据查找和访问操作。此外,内存数据库还使用了压缩算法来减小数据的存储空间,以提高数据的高效利用率。压缩算法可以根据数据的特性和存储需求,对数据进行压缩和解压缩操作,从而减小数据的存储空间,提高数据的读写性能。
在数据管理方面,内存数据库采用了一些策略来管理和优化数据的操作。首先,内存数据库采用了基于内存的索引结构,如B+树、哈希表等,来加速数据的查找和访问操作。这些索引结构可以提供快速的数据访问和查询,从而减少数据库的访问延迟。此外,内存数据库还使用了事务管理机制来保证数据的一致性和完整性。事务管理机制可以对数据的读写操作进行原子性、一致性、隔离性和持久性的管理,从而保证数据的安全性和可靠性。
内存数据库与传统磁盘数据库的比较分析
内存数据库与传统磁盘数据库的比较分析
随着计算机技术的不断发展,数据库技术也在不断演进。内存数据库作为一种
新兴的数据库技术,与传统的磁盘数据库相比,具有许多优势和特点。本文将对内存数据库与传统磁盘数据库进行比较分析,探讨它们在性能、可靠性、扩展性等方面的差异。
1. 性能
内存数据库的最大优势在于其快速的读写速度。由于数据存储在内存中,而不
是磁盘上,内存数据库能够实现更高的数据访问速度。相比之下,传统磁盘数据库需要通过磁盘读写操作来访问数据,速度较慢。因此,在需要高性能的应用场景下,内存数据库更适合。
2. 可靠性
传统磁盘数据库通过将数据持久化到磁盘上来保证数据的可靠性。即使发生断
电或系统崩溃等异常情况,数据也能够得到恢复。而内存数据库在这方面存在一定的风险,因为数据存储在内存中,一旦发生断电或系统崩溃,数据可能会丢失。为了解决这个问题,内存数据库通常会采取备份和恢复机制,以保证数据的可靠性。
3. 扩展性
内存数据库具有良好的扩展性。由于内存的快速读写速度,内存数据库能够更
好地应对高并发的数据访问需求。而传统磁盘数据库在处理大规模数据和高并发请求时可能会出现性能瓶颈,需要进行优化或升级硬件设备。因此,内存数据库更适合处理大规模数据和高并发的应用场景。
4. 空间利用率
传统磁盘数据库通过压缩和索引等技术来提高空间利用率。而内存数据库由于数据存储在内存中,不需要进行磁盘读写操作,因此可以更好地利用存储空间。但是,内存数据库的存储成本相对较高,因为内存的价格相对较高。
5. 数据一致性
传统磁盘数据库通过事务和日志等机制来保证数据的一致性。而内存数据库在这方面较为薄弱,需要依赖开发人员编写代码来保证数据的一致性。因此,在对数据一致性要求较高的应用场景下,传统磁盘数据库更为合适。
内存数据库
据大量访问的性能比较低,不能满足高效处理的要求,因此需要在系统中采 用内存数据库技术来提高系统的性能。
内存数据库的应用
源自文库
内存数据库:选型
• 内存数据管理,与应用能够紧密集成,运行效率很高,数据完整性和数据同 步性能也能够满足系统要求,对系统性能提高有非常大的帮助,但内存数据 管理在系统故障时的切换速度较慢。
• 我们对ORACLE的TimesTen进行了初步的测试,TT基本能够满足系统的要求, 但使用TT,需要对应用进行大规模改动,集成商认为对系统有较大的风险。
• 内存数据库选型还需进一步的测试和验证。
内存数据库:应用系统
• 内存数据库是通过将系统的常用数据库表中的数据全部映射到主机共享内存, 并且在数据库表上的关键字段上建立内存索引的方式,来提高系统对关键数 据的实时访问性能。应用程序在访问这些数据库表时,通过调用内存数据库 API 接口来使用共享内存中的数据,而不是直接访问物理数据库表中的数据, 这样,极大的提高了系统的实时性能。内存数据库通过同步更新接口来完成 与物理数据库的数据更新,保证内存数据库与物理数据库中数据的一致性。
ALTIBASE内存数据库介绍
ALTIBASE 数据安全性
Logging : 为了恢复已提交的事务,处理事务时记录日志 Checkpoint: 日志文件达到一定个数或周期达到设定的时间时把更新的内存数据页写到磁盘以缩短恢复时间
数据页储存数据并返回事务结果前以文件形式记录(logging)事务的内容 非正常时内存上的数据即使发生了流失,也可通过文件系统上的日志文件可以恢复数据
都是关系型数据库支持标准SQL支持ODBC、JDBC等标准访问接口
从应用开发和使用的角度,二者并无差别
第5页/共26页
内存数据库使用方案
替换方案增强方案
使用内存数据库,解决现有系统的性能瓶颈,可以采用如下两种方案:
第6页/共26页
内存数据库使用方案 – 替换方案
磁盘数据库
(Oracle, Informix, Sybase, DB2, …)
第20页/共26页
ALTIBASE 成功案例
领域
项目
配置
湖南移动 BOSS3.0 改造
80G/8CPU
天津移动 BOSS3.0 改造
60G/10CPU
湖南移动 NGBOSS 1.0
256G/16CPU×2
天津移动 NGBOSS 1.0
200G/12CPU×2
新疆移动 NGBOSS 1.0
65G/8CPU×2
128G/6CPU×2
五种常见的数据存储方式解析
五种常见的数据存储方式解析
数据存储是计算机科学领域中非常关键的一个概念。随着科技的不断发展,数据存储方式也在不断演进,出现了多种不同的存储方式。本文将会解析五种常见的数据存储方式,包括关系型数据库、非关系型数据库、文件系统、内存数据库和分布式文件系统。
首先,我们来介绍关系型数据库。关系型数据库是一种基于关系模型的数据存储方式。它使用表的形式来组织数据,每个表包含多个行和列。关系型数据库使用结构化查询语言(SQL)进行数据管理和查询操作。这种存储方式适用于需要强调数据一致性和事务处理的应用场景,如银行系统和企业资源管理系统。
其次,非关系型数据库是另一种常见的数据存储方式。与关系型数据库不同,非关系型数据库不具备固定的表结构,数据以键-值对(Key-Value)的形式存储。非关系型数据库采用多种数据模型,包括文档型、列式、图形和键-值对模型等。这种存储方式适合需要处理大规模数据和需要高度可扩展性的应用场景,如社交网络和大数据分析。
文件系统是另一种常用的数据存储方式。它将数据以文件的形式存储在计算机的硬盘或其他储存介质上。文件系统使用层次结构来组织和管理文件,包括文件夹和子文件夹。这种存储方式适用于存储和管理个人和企业的文档、图片、音频和视频等文件。
内存数据库是指将数据存储在计算机的内存中的一种存储方式。相比于传统的磁盘存储,内存数据库具有更高的访问速度和更低的延迟。内存数据库适用于需要实时处理和高并发访问的应用场景,如电子交易系统和实时数据分析。
最后,我们来介绍分布式文件系统。分布式文件系统将文件和数据分布在多个计算机节点上,可以实现数据的冗余备份和负载均衡。分布式文件系统适用于大规模分布式系统和云计算环境中的数据存储需求。
内存数据库的优势与应用场景分析
内存数据库的优势与应用场景分析
内存数据库是一种将数据存储在计算机内存中的数据库,相比
传统的磁盘数据库,内存数据库具有许多独特的优势和适用场景。本文将对内存数据库的优势和应用场景进行详细分析。
1. 快速响应时间:内存数据库可以直接在内存中进行数据操作,而不需要像磁盘数据库一样进行磁盘读写操作。由于内存的读写
速度远远快于磁盘,因此内存数据库可以实现非常快的响应时间。这对于一些对实时性要求较高的应用场景非常重要,如金融交易
系统、在线游戏等。
2. 高并发处理:内存数据库能够更好地处理高并发的访问请求。由于内存数据库的读写速度快且无需加锁等复杂操作,它可以更
好地应对并发读写操作。这使得内存数据库在高负载环境下表现
出色,特别适用于需要处理大量并发请求的应用场景,如电子商
务平台、社交媒体网站等。
3. 实时分析:内存数据库对于实时分析和查询操作非常高效。
传统磁盘数据库通常需要进行复杂的索引和查询操作以获取所需
数据,而内存数据库由于数据存储在内存中,可以直接通过内存
地址快速访问数据。这使得内存数据库在大数据分析和实时决策
等场景下具有重要的优势,特别适用于数据挖掘、风控分析等领域。
4. 实时数据共享和同步:内存数据库可以实现实时的数据共享
和同步。由于数据存储在内存中,不需要像磁盘数据库那样进行
繁琐的读写操作,多个应用程序可以同时访问和使用内存数据库
中的数据。这样一来,多个系统之间的数据共享和同步可以实时
进行,大大提高了系统的可靠性和稳定性。这对于分布式系统、
集群环境等场景非常有益。
5. 灵活的数据模型:内存数据库通常采用键值对存储方式,不
数据库的类型和特点
数据库的类型和特点
以下是一些常见的数据库类型及其特点:
1. 关系型数据库(Relational Database,RDB):是基于关系模型的数据库,它使用表格来存储数据,并通过关联(外键)来建立不同表格之间的关系。关系型数据库的优点是数据结构清晰、易于理解,支持复杂的查询和数据分析操作。常见的关系型数据库管理系统(RDBMS)有 MySQL、Oracle、SQL Server 等。
2. 非关系型数据库(NoSQL Database):是一类不遵循传统关系模型的数据存储方式,它包括多种不同类型的数据库,如键值存储、文档型存储、图数据库等。非关系型数据库的优点是具有高扩展性、高性能和灵活性,适用于处理大规模数据和高并发访问。常见的非关系型数据库有 MongoDB、Cassandra、Redis 等。
3. 分布式数据库(Distributed Database):是将数据分布存储在多个节点上的数据库系统,它通过网络连接各个节点,实现数据的分布式处理和协同工作。分布式数据库的优点是具有高可用性、可扩展性和容错能力,适用于处理大规模数据和分布式应用。常见的分布式数据库有 Cassandra、HBase、MongoDB 等。
4. 列式存储数据库(Column-oriented Database):是一种以列作为数据存储和访问单位的数据库,与传统的行存储方式不同。列式存储数据库的优点是能够高效地处理大量数据,尤其是在数据分析和查询方面表现出色。常见的列式存储数据库有 ClickHouse、Hive 等。
内存数据库介绍
常用内存数据库介绍(一)
博客分类:
内存数据库
数据结构Oracle企业应用网络应用设计模式
(注:部分资料直接来源于Internet)
1.内存数据库简介
1.1概念
一、什么是内存数据库
传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。
近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。
在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:
内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。
内存数据库 TimesTen 简介
With IMDB Cache, a transaction that reads a database record can take less than 5 microseconds (a microsecond is one millionth of a second), and transactions that update or insert a record can take less than 15 microseconds (measured with Oracle Enterprise Linux on AMD Opteron 1.8Ghz processor).
TimesTen通过Replication选项来保证数据的高 可靠性,即通过在不同的TimesTen维护数据的多 个拷贝来为应用提供不间断的服务。 Replication的主要功能如下:
故障切换(Failover):当一个节点的TimesTen出现故障 时,应用可以切换到别的节点来继续运行。 在线升级(Online upgrade):当对某一个节点的 TimesTen进行在线升级时,应用通过别的节点的 TimesTen提供的服务不间断运行。 负载均衡(Load Sharing):通过对应用的切分,将不同 的应用分配到不同的节点上,不同的节点之间通过 Replication来保持数据的一致性。
面向内存数据库的快照机制和持久性支持研究
持久性支持的性能优化
数据压缩技术:减少存 储空间和提高I/O效率
并行处理技术:通过多 线程或多进程同时处理
数据,提高处理速度
缓存机制:利用缓存来 存储常用数据,提高访
问速度
数据冗余消除:去除 重复数据,减少存储
空间和I/O负载
持久性支持的适用场景
需要长期保存大量数据的应用
需要保证数据可靠性和一致性 的场景
比较分析:在快照机制和持久性支持之间进行选择时,需要根据实际需求进行权衡,例如对于需要高实时 性和一致性的场景,快照机制可能更合适;对于需要高可靠性和持久性的场景,持久性支持可能更合适。
适用场景:快照机制适用于需要快速获取数据一致性视图的应用,如金融交易、实时分析等;而持久性支 持适用于需要保证数据可靠性和持久性的应用,如数据仓库、备份和恢复等。
持久性支持技术将不断 创新,提高数据可靠性
和可用性。
快照机制将更加成熟, 支持更多业务场景和数
据类型。
人工智能和机器学习技 术将被引入,实现自动
化管理和智能优化。
应用场景拓展
云计算环境:内存数据库与云存储的结合,实现高效的数据处理和存储
大数据处理:利用快照机制和持久性支持,提高大数据处理的效率和准确性
实时分析系统:内存数据库的快照机制可以满足实时分析系统的需求,提供快速的数 据分析和查询
高并发应用:持久性支持可以保证高并发应用的数据一致性和可靠性
内存数据库介绍精品PPT课件
Data(col2)
Binary data(up to 4GB)
❖ Recno和Queue
Key(col1) Integer
Data(col2)
Binary data(up to 4GB)
事务
❖事务提供了ACID属性
原子性(Atomicity)
一致性(Consistency) 隔离性(Isolation) 持久性(Durability)
把一组操作应用于数据库时,要么都成功,要么都 不成功。 在事务中,看到的数据是一致的。 事务之间互相隔离,好象他们是按顺序执行的。
一旦提交,即使系统失败也得到了保存
❖事务的好处:
1. 系统和应用失败是不会丢失数据 2. 把多个操作组合成为一个逻辑操作 3. 能够回滚变化 4. 在用户没有提交时,隐藏其所做的改变
访问方法
❖ 四种访问方法
BTree
Key值具有相邻引用性时,效率较高。
Hash Recno Queue
Key值不具有相邻引用性时,效率较高。
可变长度的记录 可以保存到平板文件中 更高的并发能力 FIFO,记录级锁 固定长度的记录
数据库容量
❖ HASH和BTREE(最大256TB)
Key(col1)
▪ 内存数据库抛弃了磁盘数据管理的传统方式,基于全 部数据都在内存中重新设计了体系结构,并且在数据 缓存、快速算法、并行操作方面也进行了相应的改进, 所以数据处理速度比传统数据库的数据处理速度要快 很多,一般都在10倍以上。
常用内存数据库介绍
常用内存数据库介绍
随着互联网和大数据的快速发展,传统的磁盘数据库在处理大规模数
据时面临着性能瓶颈。相比之下,内存数据库因其高性能、低延迟和高并
发性能等优势,正在成为许多企业和组织中的首选。本文将介绍几种常用
的内存数据库及其特点。
1. Redis
Redis是一个开源的内存数据库,它支持键值存储模型,并提供了丰
富的数据结构,如字符串、哈希表、列表、集合和有序集合等。Redis以
其快速的读写速度、持久化能力和高扩展性而闻名。它可以通过持久化机
制将数据保存到磁盘,以克服内存大小的限制。此外,Redis还支持发布
/订阅和事务等功能,使其成为构建缓存、会话管理、消息队列和实时分
析等应用的理想选择。
2. Memcached
Memcached是一个开源的高性能分布式内存对象缓存系统。它可以将
数据存储在内存中,并提供简单、快速的键值存储访问接口。Memcached
使用键值对的方式存储数据,支持多线程并发访问,可以通过增加服务器
的数量来扩展性能。在互联网应用中,Memcached通常用于减轻数据库的
负载,提高应用性能。
3. Apache Ignite
Apache Ignite是一个内存计算平台,它提供了分布式的内存数据库、缓存和计算引擎。Ignite将数据存储在内存中,以实现极高的读写性能
和低延迟。它支持多种数据模型,如键值存储、关系型存储和对象存储,
可以处理大规模数据和复杂查询。此外,Ignite还提供了分布式查询、
事务处理和机器学习等功能,使其成为构建实时分析、推荐系统和流式处
理等应用的首选。
4. Aerospike
ALTIBASE内存数据库介绍
ALTIBASE内存数据库介绍
ALTIBASE的架构采用了一种基于多版本并发控制(MVCC)的内存数据库架构。该架构可以提供高效的事务处理和并发控制机制,使得数据库能够支持大规模的并发访问和高度可靠的数据一致性。ALTIBASE的内存管理机制采用了内存池技术,可以有效地管理和利用内存资源,提供高速的数据访问和响应速度。
1.高性能:ALTIBASE的内存数据库架构使得它能够提供非常高的数据访问速度和响应速度。它的高速数据处理能力使得它能够应对海量的实时数据处理需求,提供快速的数据分析和查询服务。
2.可靠性:ALTIBASE采用了多版本并发控制(MVCC)机制,能够提供高度可靠的数据一致性和事务处理。它的故障恢复机制使得数据库能够在遭受故障或崩溃时,快速恢复并保持数据的一致性。
3.扩展性:ALTIBASE的架构可以进行线性扩展,可以根据用户需求增加存储和计算能力。通过添加更多的节点来扩展集群,可以提供更高的并发访问能力和更大的存储容量。
4.强大的数据处理能力:ALTIBASE支持各种类型的数据处理和实时分析任务。它提供了丰富的SQL查询功能和高级分析功能,可以满足不同的数据分析和处理需求。
1.金融行业:ALTIBASE可以用于高频交易系统、风险管理系统和大数据分析等场景中。它的高性能和可靠性能够满足金融行业对高速实时数据处理和分析的需求。
2.电信行业:ALTIBASE可以用于电信网络管理系统、计费系统和运营支持系统等场景中。它的高性能和可扩展性使得它能够处理大量的数据和支持高并发访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用内存数据库介绍(一)
博客分类:
内存数据库
数据结构Oracle企业应用网络应用设计模式
(注:部分资料直接来源于Internet)
1. 内存数据库简介
1.1 概念
一、什么是内存数据库
传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。
近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。
在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库
(MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:
内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。
而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。
2. 内存数据库历史和发展
一、雏形期
从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留
数据的商业化数据库,但它同时也可以很好地支持磁盘驻留数据。在这个产品中体现了主存数据库的主要设计思想,也就是将需要频繁访问,要求高响应速度的数据直接存放在物理内存中访问和管理。在这个阶段中,包括网状数据库、关系数据库等其他各种数据库技术也都逐渐成型。
二、技术理论成熟期
1984年,D J DeWitt等人发表了《主存数据库系统的实现技术》一文。第一次提出了Main Memory Database(主存数据库)的概念。预言当时异常昂贵的计算机主存价格一定会下降,用户有可能将大容量的数据库全部保存在主存中,提出了AVL树、哈希算法、主存数据库恢复机制等主存数据库技术的关键理论,为主存数据库的发展指出了明确的方向。
1984年,D J DeWitt等人提出使用非易逝内存或预提交和成组提交技术作为主存数据库的提交处理方案,使用指针实现主存数据库的存取访问。
1985年,IBM推出了IBM 370上运行的OBE主存数据库
1986年,RB Hagman提出了使用检查点技术实现主存数据库的恢复机制。威斯康星大学提出了按区双向锁定模式解决主存数据库中的并发控制问题。并设计出
MM-DBMS主存数据库。贝尔实验室推出了DALI主存数据库模型。
1987年,ACM SIGMOD会议中提出了以堆文件(HEAP FILE)作为主存数据库的数据存储结构。Southern Methodist大学设计出MARS主存数据库模型。
1988年普林斯顿大学设计出TPK主存数据库。
1990年普林斯顿大学又设计出System M主存数据库。
三、产品发展期和市场成长期
随着互联网的发展,越来越多的网络应用系统需要能够支持大用户量并发访问、高响应速度的的数据库系统,主存数据库市场成熟
半导体技术快速发展,半导体内存大规模生产,动态随机存取存储器(DRAM)的容量越来越大,而价格越来越低,这无疑为计算机内存的不断扩大提供了硬件基础,使得主存数据库的技术可行性逐步成熟
1994年美国OSE公司推出了第一个商业化的,开始实际应用的主存数据库产品Polyhedra
1998年德国SoftwareAG推出了Tamino Database。
1999年日本UBIT会社开发出XDB主存数据库产品。韩国Altibase推出Altibase 2000年奥地利的QuiLogic公司推出了SQL-IMDB
2001年美国McObject推出eXtremeDB。加拿大Empress公司推出EmpressDB
四、几种主存技术应用的比较
第一代:用户定制的主存数据库。通过应用程序来管理内存和数据;不支持SQL 语句, 不提供本地存储, 没有数据库恢复技术;性能好但很难维护和在别的应用中不能使用;应用在实时领域比如工厂自动化生产。
第二代:简单功能的内存数据库。能够快速处理简单的查询;支持部分的 SQL语句和简单的恢复技术;主要目的是能够快速处理大量事务;针对简单事务处理领域,尤其是交换机, 移动通信等。
第三代:通用的主存数据库。针对传统的商业关系型数据库领域,能够提供更高的性能、通用性以及稳定性;提供不同的接口来处理复杂的SQL语句和满足不同的应用领域;可以应用在计费、电子商务、在线安全领域,几乎包括磁盘数据库的所有应用领域。
五、目前几种常见的通用内存数据库